Scala東北紹介

1,743 views

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,743
On SlideShare
0
From Embeds
0
Number of Embeds
310
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Scala東北紹介

  1. 1. Scala Scala@ 東北 のご紹介
  2. 2. 自己紹介 <ul><li>武田ソフト </li><ul><li>山形
  3. 3. 自営業 SIer </li></ul><li>Scala 東北 </li><ul><li>週一回のネット勉強会 </li></ul></ul>
  4. 4. Scalaとは <ul><li>JavaVM上で動作する関数型言語・オブジェクト型言語のハイブリッド言語
  5. 5. Immutable・Statelessな特性を利用した並列処理が得意。Actor-API
  6. 6. クロージャーのサポート
  7. 7. 静的型付け言語
  8. 8. 高度なパターンマッチング機能
  9. 9. XML/正規表現リテラル...... etc </li></ul>
  10. 10. ようするに Better Java
  11. 11. Javaソースコード class Demo { static void main(String[] args){ String str = &quot;A&quot;.concat(&quot;B&quot;).toLowerCase(); System.out.println(str); } }
  12. 12. Scalaソースコード object Demo { def main(args:List[String]){ val str:String = &quot;A&quot;.concat(&quot;B&quot;).toLowerCase(); System.out.println(str); } }
  13. 13. To Scala object Demo { def main(args:List[String]){ val str:String = &quot;A&quot;.concat(&quot;B&quot;).toLowerCase() System.out.println(str) } }
  14. 14. To Scala object Demo { def main(args:List[String]){ val str = &quot;A&quot; concat(&quot;B&quot;) toLowerCase System.out.println(str) } }
  15. 15. To Scala object Demo extends Application{ val str = &quot;A&quot; concat &quot;B&quot; toLowerCase println(str) }
  16. 16. よりScalaらしく Java コア API を 勝手に 拡張できる Implicit conversion
  17. 17. To Scala val str = &quot;A&quot; plus &quot;B&quot; to_low
  18. 18. よりScalaらしく メソッド名に記号が使える!
  19. 19. To Scala val str = &quot;A&quot; ~~ &quot;B&quot; vv
  20. 20. Scalaソースコード object Demo { def main(args:List[String]){ val str:String = &quot;A&quot;.concat(&quot;B&quot;).toLowerCase(); System.out.println(str); } } こっちが基本
  21. 21. ようするに Better Java
  22. 22. Javaのここ がきらい
  23. 23. Javaのここがきらい getXX setXX getXX setXX
  24. 24. Scala class Person( val id:Int , var name:String) { } val takeda = new Person(1,&quot;takedasoft&quot;) takeda.id //=>1 takeda.name //=>takedasoft takeda.id = 1 //コンパイルエラー takeda.name = &quot;xxxxxxx&quot;
  25. 25. Javaのここがきらい Collection List<String> list = new ArrayList<String>(); list.add(&quot;a&quot;); list.add(&quot;b&quot;); list.add(&quot;c&quot;); for( String str : list ){ System.out.println( str ); }
  26. 26. Scala val list = List(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) list.foreach( str => println(str) ) list.map( str => str.toUpperCase )
  27. 27. Javaのここがきらい クロージャーが ねぇ!
  28. 28. Scala あるよ
  29. 29. Javaのここがきらい  正規表現 Pattern pattern = Pattern.compile(&quot;+&quot; ,Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); Matcher matcher = pattern.matcher(&quot;aa 11 bb 22&quot;); for( int i=0; i < matcher.groupCount(); i++ ){ System.out.println(matcher.group(i)); }
  30. 30. Scala for( s <- &quot;+&quot;.r findAllIn &quot;aa 11 bb 22&quot; ){ println(s) }
  31. 31. Javaのここがきらい XML DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document xml = builder.parse( &quot;<xml><person><name>takedasoft</name></person></xml>&quot;); //以下省略
  32. 32. Scala val xml = <xml> <person> <name>takedasoft</name> </person> </xml> xml &quot;name&quot; text //=>takedasoft
  33. 33. 忘れないでください Scala is Better Java
  34. 34. Scalaのよさをまとめると・・・ <ul><li>静的型付け(ベースはJava) </li><ul><li>高速
  35. 35. 安全(たとえばXHTML) </li></ul><li>Lightweight言語的 </li><ul><li>サクッと記述
  36. 36. ヘンタイ遊び可 </li></ul></ul>
  37. 37. Javaのここがきらい コンパイル めんどう
  38. 38. Scala デモ 対話環境 あるよ

×