scala@tohoku、週に1度1時間、ustやskypeを使ってネットでやってる勉強会です。私はscalaで仕事できているわけではないのですが、勉強はコツコツ続けています。週に1度の目標があるのはいいペースメイキングになりますね。
最初はscalaそのもののコードリーディングから始まったのですが、
初学者も入りやすいように「みんなのコード」で自作コードをさらして、みんなで読んで添削してもらう。ということをやってます。
が、第5回あたりから参加者が減ってしまいました ><
みなさんが参加しやすい時間も調整中。
私は初めて知った文法で何かやってみる的なコードしか書けませんが、暖かく迎えてくれるので、大変にうれしい。かなりレベルの高いプログラマの面々からいろいろと教えてもらえるので、毎回(ついていけないこともたくさんあるけど)とても勉強になっています。
東北の人に限らず、気が向いたらskypeでポロッと立ち寄ってください。なんなら勉強会自体をジャックしてもらってもかまいませんよー。
ナベアツの実装:implicit conversion(暗黙の型変換)の使い方
(ymnkさんによる添削版)
と定義すると、
となる。
implicit宣言すると、足りないメソッド(ここでは Int.! )が出てきたときに、コンパイル時に挿入できるメソッドを検索して挿入してくれる。
この補完方法が分かれば、implicit def の右辺はどんな風にでも組める。ただし何も考えずに多用すると、オブジェクトがポコポコとnewされてしまうので、あんまりクダらない用途では使わない方がいいですね。
こんなネタでも付き合ってくれてありがとうございます!
calc3.scala(h_sakurai)
・Streamの鮮やかな使い方に驚愕した。
・コンパイラってこうやって作るのか!と少しわかった。
TakahashiMethodInScalaSwing.scala(ymnk)
・scala-swing パッケージの概要
・まだAPIとして分かりづらくて、
結局scala-swing のソースコードリーディングにw
・def title_ = と宣言するとセッターになって、
title = "あ" と代入文のように書ける。
・コンパイルオプション-Xcheckinitで、初期化されていない
オブジェクトをチェックできる
Twitterにて、kmizuさんより
・scalac -Xprint:<phase-name>
で、シンタックスシュガーを展開したソースが見れる。
<phase-name>は、scalac -Xshow-phasesで
など。第6回まで、もっとたくさん学んだことがありますが、これからはもっと随時書き残していくことにする。