前回、m2eclipse-scalaを使って、Scala プロジェクトの pom.xml を Eclipse にインポートした。
インポートの結果作成された .project ファイルと、.classpath ファイルの中身を確認しておく。
| ● 2012年9月30日日曜日 - | [Scala] Eclipse に Scala の Maven プロジェクトを インポート。の続き |
| ● 2012年9月28日金曜日 - | [Scala] Eclipse に Scala の Maven プロジェクトを インポート |
| ● 2012年9月26日水曜日 - | [Scala] REPLを使う |
| ● 2012年9月24日月曜日 - | Sakura エディタ で HTML エンコードマクロを作る。 |
| ● 2012年9月23日日曜日 - | [Scala] match 文の仕組み |
| ● 2012年9月21日金曜日 - | [Scala] 正規表現によるマッチ |
| ● 2012年9月20日木曜日 - | [Scala] 一般クラスのマッチ |
2012年9月30日日曜日
2012年9月28日金曜日
[Scala] Eclipse に Scala の Maven プロジェクトを インポート
Eclipse に Scala の Maven プロジェクトを m2e を使ってインポートする。
m2eclipse-scala を使う。
これをインストールしておかないと、pom.xml を import するときに、 maven-scala-plugin:2.15.2:compile と testCompile の resolve ができずにエラーになってしまう。
m2eclipse-scala を使う。
これをインストールしておかないと、pom.xml を import するときに、 maven-scala-plugin:2.15.2:compile と testCompile の resolve ができずにエラーになってしまう。
2012年9月26日水曜日
[Scala] REPLを使う
これまで Scala は Eclipse IDE で使ってきた。
Eclipse IDE で使う分には Scala SDK のインストールは必要ないのでインストールしていなかったのだが、 ちょっとしたことを確認するのに REPL があると便利なので入れてみる。
Scala の本家 から最新の stable release である Scala 2.9.2 をダウンロード。
Windows 版は zip 版と msi 版があるが msi 版は何がどう設置されるのかわからないので zip 版をダウンロード。 展開して bin ディレクトリにパスを通す。
これだけで準備は完了。REPL を使ってみる。
Eclipse IDE で使う分には Scala SDK のインストールは必要ないのでインストールしていなかったのだが、 ちょっとしたことを確認するのに REPL があると便利なので入れてみる。
Scala の本家 から最新の stable release である Scala 2.9.2 をダウンロード。
Windows 版は zip 版と msi 版があるが msi 版は何がどう設置されるのかわからないので zip 版をダウンロード。 展開して bin ディレクトリにパスを通す。
これだけで準備は完了。REPL を使ってみる。
2012年9月24日月曜日
Sakura エディタ で HTML エンコードマクロを作る。
Blogger で XML ソースを書く際には 特殊文字をエンコードする必要があるのだが、面倒なのでエディタで一括で処理できるようにしよう。普段はサクラエディタ (Sakura Editor) を使っているので、サクラエディタのマクロとして作ることにする。
2012年9月23日日曜日
[Scala] match 文の仕組み
このブログを見て match 文 の仕組みが分かった気がするのでメモしておく。
-
パターンマッチをもっと便利に - extractor(抽出子)による拡張
- ゆるよろ日記 -
2012年9月21日金曜日
[Scala] 正規表現によるマッチ
正規表現を使った match ... case 文を使ってみる。
val p : Regex = ".*no=([0-9]+),name=(.*)".r;
val values = List(
"no=10,name=ten",
"no=11,name=eleven",
"no=20,name=twelve" );
for (value <- values ) {
value match {
case p("10", v) => println("name for 10: " + v)
case p("11", v) => println("name for 11: " + v)
case p(n, v) => println("name, value= " + (n,v))
}
}
name for 10: ten
name for 11: eleven
name, value= (20,twelve)
2012年9月20日木曜日
[Scala] 一般クラスのマッチ
List や Tuple ではない一般のクラスの場合、unapply、unapplySeq いわゆる抽出子(extractor)を定義しておくことで match ... case 文で使えるようになる。
...
val a = new MatchSampleClass;
a match {
case MatchSampleClass(x, y) =>
println("x: " + x + " y: " + y);
case _ => println("OTHER: " + a);
}
....
class MatchSampleClass
object MatchSampleClass {
def unapply(obj : MatchSampleClass) : Option[(String, String)] = {
return Option(("ONE", "TWO"));
}
}
x: ONE y: TWO
登録:
投稿 (Atom)
