Scalaの壁をぶち壊せ! "壁パン1発目" ~ 導入編
はじめに
バカ向け言語のエントリでscalaは簡単にコーディング出来ると書きました。それは事実なのですが、そこに行き着くために超えなくてはならない壁が、いくつか立ちはだかっています。
ぼくが分かり難かった部分を中心に、Scalaの壁をぶち壊して先に進むためのサポート的な何かを書いていこうと思います。ただ、scala入門では無さそうな予感がするので、初めての方は先にどこかでscala入門を読んでおいたほうが良いかもしれません。
実行環境
scalaの実行環境を構築するにはplay frameworkを突っ込むのが一番簡単です。
1. 落とせ!
Play Framework - Build Modern & Scalable Web Apps with Java and Scala
playframeworkをダウンロードしてください。
2. 通せ!
ダウンロードしたzipファイルを展開して、パスを通してください。
3. New!
"play new sb" を実行します。 アプリ名と言語を聞かれるので、scalaを選んでください。
使い方
便利なコマンド
意外と知らないscala consoleの便利コマンドを紹介します。
:paste
consoleでは1行単位でしか入力出来ませんが、":paste"を使えば複数行をまとめて入力出来ます。では、試してみましょう。
1. 以下のコードをコピー
object MinamikeDSL { implicit class i2Chiaki(i:Int) { def を2倍にする = s"それは${i * 2}だバカやろぅ" } }
2. consoleで":paste"コマンドを実行*1
3. コピーしたコードをペースト
4. "Ctl + D"でpasteモードを終了
5. 実行
scala> import MinamikeDSL._ scala> (1 + 10) を2倍にする
はい、気持よく罵られましたね。これであなたは新たな道への第一歩を踏み出したのです。
:type
":type"コマンドは値の型(クラス)情報を参照出来ます。例えば"s"の場合Stringと表示されます。
scala> :type "s" String
ここまでだと大した事ありませんが、これに"-v"オプションをくっつけると化けます。
scala> :type -v "s" //一部省略 // Type signature String // Internal Type structure final class String extends Serializable with Comparable[String] with CharSequence
何という事でしょう、継承関係も表示されるようになりました。これで型が大体どんな機能を持っているのかを把握出来ますね。
:warnings
":paste"コマンドでコードをpasteした時になにやらwarningが表示されていました。
warning: there were 1 feature warnings; re-run with -feature for details
"-feature"オプションを付けてもう一回実行しろと言う事ですが面倒ですよね。そんな時に":warnings"です。
scala> "abc" tail warning: there were 1 feature warnings; re-run with -feature for details res6: String = bc scala> :warnings //一部略 <console>:12: warning: postfix operator tail should be enabled by making the implicit value language.postfixOps visible. This can be achieved by adding the import clause 'import scala.language.postfixOps' "abc" tail
再実行する事無く、warningが表示されました。
- 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 235回
- この商品を含むブログ (40件) を見る
- 作者: Miran Lipovača,田中英行,村主崇行
- 出版社/メーカー: オーム社
- 発売日: 2012/05/23
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 580回
- この商品を含むブログ (45件) を見る
*1:過去の行いを無かったことにしたい場合は":reset"で記憶を消去