ぬまのどろ

namazuのゆるい日記。 ゆるり更新。

大学に行かないのも怠けてしまってよくない

今日したこと

  • ぐうたら
  • Scalaを引き続きかじった

うーん、大学に行かないととくに意味あることを全くしないで1日が過ぎてしまう。 良くないですね。 明日からまた行こうと思います。

Scala引き続き

今日はちゃんとIDEでがっつり書ける環境を整えて色々やりたかった。 ゲームの合間にちょろちょろやってただけで、実質ほとんどしていないの良くない。

以下、できたこと&思ったこと&知ったこと

IntelJでScala書いて実行

そもそもこれが一番面倒だった。 sbt入ってるし、プラグイン入れたし、シンタックスとかもちゃんとできてるなーって思ってたんだけど、 実行するとメインクラスがないよーって怒られてIntelJの実行ボタンから動かない。

無駄に色々設定を見直してはあれーってなってたんだけど、さっさとググれば良かった。

domwp.hatenablog.com

この記事で秒で解決した。 言われてみればIntelJのソースディレクトリなのに青色が付いてないなーって。 

object HelloWorld {
  def main(args: Array[String]): Unit = {
    val msg = "Hello World"
    println(msg)
  }

これの実行をするためだけに、かなり無駄な時間を費やしてしまった。。。

class,object,interfaceとか関連

さくっと復習。 ScalaにはMixinがあるんだけどこれはやっぱつおい。

まぁTypeScriptであった機能なのでこの辺は書き方さえ覚えておけばまぁいいか。

ScalaのライブラリやJavaライブラリを叩く

とりあえずよくあるファイル読み込みをやってみた。 scalaのライブラリを使うverと,javaのReaderを使う版を試してみた。

import java.io.{BufferedReader, FileReader}
import scala.io.Source

object HelloWorld {
  def main(args: Array[String]): Unit = {
 fileReadScala()
    fileReadJava()
  }

  def fileReadScala() {
    val source = Source.fromFile("./test.txt")
    // Javaのメソッド参照みたいやな getLinesでIterater(List), => foreach に print関数指定
    source.getLines().foreach(println)

    // for式で
    for (l <- source.getLines()) println
  }

  def fileReadJava() {
    val reader = new BufferedReader(new FileReader("./test.txt"))
    while (reader.ready()) {
      println(reader.readLine())
    }
    reader.close()
  }
}

あれってなったこと

例外は?

Scalaではすべて非検査例外となる。 そもそも例外を使わず、Optionalやその他もっと優秀なのがあるからそっちを使え。 yuroyoro.hatenablog.com

なるほど。

for式

    // 二重ループ ジェネレータ*2
    for (i <- 1 to 10; j <- 1 to 10) {
      println(i + " " + j)
    }
    /*
    for式は foreach, map, filterに置き換えを行い実行する.
    こんな感じらしい, なるほど
    (1 to 10).foreach {
      (i) => (1 to 10).foreach {
        (j) => println(i + " " + j)
      }
    }
     */

Javaで気合いで作っていたStream処理が言語の力を借りてめっちゃ自然になった。。。   全部式ってのに頭がなかなか追いつかないですね。 書き上げてみると自然なんですけど、なかなかすぐコードに起こせない。

いまいちよく分からなかったfor式であったが、Hisidamaのページでやっと理解した。

Scala forメモ(Hishidama's Scala for Memo)

やはりここは参考になる。 Java版は熟読したけど、もうすこしScalaに習熟したらScala版も全部読んで理解しておこうと思う。

どうでもいいはなし

ボスから「できましたか?」みたいな怖いメールが来た。 今日は雪の積もってる中スーツケースを引いて大学に行くのが面倒だなーって結局行かなかったが、 明日はちゃんと行きたい。 何時に起きるかわからないけど。。。

明日は大学に行って

  • 某サービスの復旧、設定ミスの修正、停電対策
  • ルータの設定が変更されたらしいので確認
  • 卒論発表スライドのアウトライン作成

とかをしたい。 ちょっと放置しすぎな案件が溜まっているのでそれも早いうちに消化してしまえるようサボっていた分の作業もやりたい。

家に居たらここ最近さらに太った気がする。 腰が痛いのは体重(体脂肪)が増えたせいではないかという仮説が生じた。