読者です 読者をやめる 読者になる 読者になる

basyura's blog

あしたになったらほんきだす。

scala

Ordered trait

Ordered trait を継承(or Mix-in)すると compare を定義するだけで = を使えるようになる。 class Sample(msgIn:String) extends Ordered[Sample] { val msg = msgIn def compare(that: Sample) = this.msg.toInt - that.msg.toInt } val s1 = new Sample("1…

名前渡しパラメータ

通常はファイル出力しないデバッグ用ログでも、メソッド呼び出しの際に toString で文字列生成されるので実は無駄にコストがかかっているという場合に使える(のか?)。 class Test { override def toString : String = { println("called Test#toString") …

メソッド定義と for 文

戻り値まで書く def test1(list: List[String]) : List[String] = { for (l <- list ; if l > "2") yield { "@" + l } } 戻り値を省略 def test3(list: List[String]) = { for (l <- list ; if l > "2") yield { "@" + l } } 中括弧も省略 def test2(list: L…

ローカル関数

object Sample { def main(args: Array[String]) { def join(name: String , family: String) : String = { return name + " " + family } println(join("basyura" , "hogehoge")) //=> basyura hogehoge } }メソッドの中にメソッド

overload

class A { def hoge(param: Int) { println("Int -> " + param) } def hoge(param: String) { println("String -> " + param) } } var a = new A() a.hoge(1) //=> Int -> 1 a.hoge("1") //=> String -> 1

override

class A(msg: String) { override def oString = msg } 存在しないメソッドを override しようとすると (fragment of sample.scala):3: error: method oString overrides nothing override def oString = msg ^

シングルトンオブジェクト

今日もコップ本 Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)作者: Martin Odersky,Lex Spoon、Bill Venners,羽生田栄一,長尾高弘出版社/メーカー: インプレスジャパン発売日: 2009/08/21メディア: 単行本購入: 17人 …

リストへの要素の追加(append)の問題

今日もコップ本 Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)作者: Martin Odersky,Lex Spoon、Bill Venners,羽生田栄一,長尾高弘出版社/メーカー: インプレスジャパン発売日: 2009/08/21メディア: 単行本購入: 17人 …

メソッド呼び出し

var list = List(1,2,3) 0 :: list //=> List(0, 1, 2, 3) は右被演算子であるリスト list のメソッド。メソッド名の末尾がコロンの場合には、メソッドは右被演算子から呼び出される。よって list.::(0) という形になる。

コップ本とどいたー

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)作者: Martin Odersky,Lex Spoon、Bill Venners,羽生田栄一,長尾高弘出版社/メーカー: インプレスジャパン発売日: 2009/08/21メディア: 単行本購入: 17人 クリック: 639回…

Scala 勉強会

お決まりタグがあったはずだけど忘れた。今 lingr 落ちてるみたいだし。 日時:2009年11月03日 (火/祝日) 13:15〜15:40 講師:yayuguさん(http://d.hatena.ne.jp/yayugu/) 場所:Lingr http://lingr.com/user/signup?letmein=onsg Ustream:http://www.ust…

オススメ記事を見て始めたの巻き

まずはインストール ubuntu の場合 sudo apt-get install scala 終了 ('ー')ゞ Mac の場合 sudo port install scala 終了 ('ー')ゞ cygwin の場合 http://www.scala-lang.org/downloads から cygwin 版をダウンロード 解凍して適当なフォルダに格納 .bashrc …