Beginners Scala in FAN 20121009

  • 653 views
Uploaded on

第2回初心者Scala in F@N での発表資料。

第2回初心者Scala in F@N での発表資料。

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
653
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. 第2回 初心者ScalaScalaの初歩 2012/10/09 @shitai246_
  • 2. 自己紹介❖ シラトリタイスケ ๏ Twitter: @shitai246_ ๏ Blog: http://a4p.me/❖ エンジニア ๏ Java歴8年・Scala歴1年・JoJo歴18年 ๏ Webサービスとかアドテクノロジーとか❖ マネージャー ๏ 管理しないこともひとつの管理手法です❖ ㈱ファンコミュニケーションズではエンジニアを募集しています ๏ 成果報酬型のアフィリエイト、A8.net/Moba8.netを開発・運用・保守するお仕事。 ๏ Javaがメイン、ところによりPerl、稀にC。もれなくレガシー。Scalaは積極採用中。
  • 3. 前回までのあらすじ❖ Scalaのインストール❖ REPLでFizzBuzz❖ Scalaの基本動作 ๏ valとvarの違い ๏ Scalaのメソッド定義 ๏ カリー化 ๏ Listの関数いろいろ
  • 4. 今日話すこと❖ ScalaはScalableな言語❖ Scalaでバッチを書いてみよう❖ 質疑応答
  • 5. ScalaはScalableな言語❖ Scalaは完全なオブジェクト指向! ๏ Javaみたいにプリミティブ型(intとかcharとか)がないよ!❖ REPLで確認してみよう! scala> 1 res0: Int = 1 scala> res0.toString res1: java.lang.String = 1 scala>
  • 6. ScalaはScalableな言語❖ 演算子に見えるものは全て関数です。 ๏ + も - も == も < も関数です。❖ REPLで確認してみよう! scala> 1 res0: Int = 1 scala> res0.+(2) res1: Int = 3 scala> res1.==(4) res2: Boolean = false
  • 7. ScalaはScalableな言語❖ これらの関数名は自分で作ったクラスでも利用できます。 ๏ 加算をしたいとき、def add() じゃなくて def +() が作れるから直感的にわかりやすい。 ๏ 以下はわかりにくいJavaのメソッドの例 // BigDecimal の引き算 BigDecimal decimal1 = ∼ BigDecimal decimal2 = ∼ // decimal1 - decimal2 decimal1.subtract(decimal2); // Dateの比較 Date date1 = ∼ Date date2 = ∼ if (date1.after(date2)) { ... }
  • 8. ScalaはScalableな言語❖ 何が嬉しいの? ๏ 複素数や三角関数などを独自に実装した場合でも、ネイティブサポートされている型と同じ使用感で使える。 ๏ 演算子(っぽく見えるもの)以外でもこういう書き方ができる。❖ REPLで確認してみよう! scala> 1 to 5 res0: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5) scala> res0 foreach println 1 2 3 4 5 scala>
  • 9. ScalaはScalableな言語❖ おまけ ๏ Scaladocを読むと「+」や「==」などの関数がちゃんと載ってます。 ๏ http://www.scala-lang.org/api/current/index.html#package ๏ たいがいのクラスにソースコードへのリンクがついてるので ちょっと英語が?なときでも大丈夫。
  • 10. Scalaでバッチを書いてみよう❖ Scalaでバッチを書いてみよう! ๏ Main.scala ファイルを作ってコードを書く。 // main関数を書く場合にはobjectにしないといけない object Main { // 関数はdefで始める // main関数は main(args : Array[String]) : Unit def main(args : Array[String]) : Unit = { // 引数argsを表示する args.foreach(println) } }
  • 11. Scalaでバッチを書いてみよう❖ Scalaでバッチを書いてみよう! ๏ scala Main.scala 引数1 引数2 ... で実行できる。 $ scala Main.scala 1 10 100 a "b c" 1 10 100 a bc $
  • 12. Scalaでバッチを書いてみよう❖ 実践! ๏ Scalaで引数をソートして標準出力するバッチを書いてみよう。