2016-01-01から1ヶ月間の記事一覧
newするときに渡す引数は、子クラス定義時も親クラス名といっしょに指定しないといけない。 class Hoge(a: Int) class Fuga extends Hoge // error: not enough arguments for constructor Hoge: (a: Int)Hoge. class Fuga(a: Int) extends Hoge(a) // ok //…
valをつけるとattr_reader、varをつけるとattr_accessorになる。(Perl日記だけどRubyで例える) 何もつけないと、privateになる。 // aは何もつけない、bはval、cはvar class Hoge(a: Int, val b: Int, var c: Int) { def getA = a } val hoge = new Hoge(1…
はまったのでメモ。 "1234567890" という文字列を List(1,2,3,4,5,6,7,8,9,0) という形にしたい。 やってみた。 "1234567890".toList //=> List[Char] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 0) "1234567890".toList.map(_.toInt) //=> List[Int] = List(49, 50…
RubyのEnumerable#lazyみたいなやつ。実際の中間処理をその場で実行せずに、forceメソッドが呼ばれたときとか、ループするときに、一気に実行する。 // 中間データができてしまうパターン (1 to 10).map(_ + 1).map(_ + 2) // scala.collection.immutable.In…
PHPだとarray()で済んでたからな…。 とりあえず配列は、線形処理ならList、ランダムアクセスならVectorで、 辞書ならMapを使っておけばいいのでしょうか。。。 scala.collections.immutable Traversable └Iterable ├Set │├HashSet │├SortedSet ││└TreeSet │├…
12月。 1日に突然会社がなくなるというアナウンスがある。 メインタイトルのアプリが違う会社に買い取られることになったので、アプリと一緒にその会社に転籍するかここで辞めるか10日で決めろと言われる。 10日。転籍条件があれだったので、辞めることにす…
LL脳には辛い。 説明を読んでるときには、「なるほどなー」、と思うんだけど、いざ出てくると「どういう意味だっけ…」ってなるし、「いつ使えばいいんだ…」ってなってる。classだけではなくて、defにも使えるので、混乱する。。。 とりあえずこれは理解した…
assert() def add100(x: Int): Int = { val z = x + 100 assert(z >= 0) // 必ず0以上という表明 z } ensuring() def add100(x: Int): Int = { val z = x + 100 z ensuring(_ >= 0) } // ↑こう書けるので、↓こうも書ける def add100(x: Int): Int = x + 100 …
要素が存在するListにはreduceLeft()で問題ない。 List(123, 234, 345).reduceLeft{ (a, b) => a + b } //=> 702 でも要素が空っぽだと、エラーになる。 List[Int]().reduceLeft{ (a, b) => a + b } // java.lang.UnsupportedOperationException: empty.redu…
text1.txt 123 234 345 456 5 6 7 8 9 10上のデータが標準入力でわたってくるので、受け取りたい。Main.scala object Main extends App { import scala.io.StdIn.readLine // 1行目 val firstArg = readLine().toInt // 2行目をスペースで区切りながらInt…