ただし、主催者は現状こんな感じらしい
日本のKotlinコントリビュータと飲んでるけどクロージャ勉強会開きたいって言ってる
— 片s (@hotchemi) July 19, 2013
Clojureおもしろいのよ
— たろう (@ngsw_taro) July 19, 2013
kotlinの未来が不安ですね…
というわけで超適当に以下のkotlinの基本文法を眺めてみた
https://sites.google.com/site/tarokotlin/3-kotlinno-biao-zhunapi
そうそう、 Comparision to Scala ってページがあるので開くと…
If you are happy with Scala, you probably don't need Kotlin.
らしいです
あれ、じゃあ終わり?
スマートキャスト
is演算子で型チェックしてたら、それはもうその型とみなして動かしてええで!
みたいな感じらしいです
ちなみにScalaにはねーよってDocumentに書いてます
同じようなことしようとするとこんな感じ?
うん、パッとは思いつかんけど同じような挙動だよね
関数
defかfunかの違いくらい?
ローカル関数もあるし〜
と思ったらローカル関数でなかなか面白いことが
拡張関数というものが混じっている
Scalaだったら暗黙の型変換とかで同様のことを頑張る感じ?
まあサンプルと同じ内容なら
str.forall(_.isUpper)
でいいじゃん?とは突っ込まない
関数リテラル
kotlinだと関数は引数として渡せないよと。
渡すなら関数リテラルでと。
scalaの場合、関数から関数リテラルに変換できるからだろうかどっちでもOK
そういや深く考えたことねーわ…
// aliasと言って良いのか…? val alias = sayHelloFunc _
kotlinにも関数から関数リテラルに変換するやつがあれば結局一緒な気がする
when式
matchとどう違うのか… と思ったけど、割りとswitch文よりな感じ?
(ただしcontinue書いたらコンパイル通らなかったし、まだ未実装?)
なので5.2のパターンマッチングを見てみた
同じように書いたらこんな感じ?
ちなみにweb demoだと Tuples are not supported. Use data classes instead. って怒られる…
→ 後のデータクラスの章で悲しみの答えが!
流れでバインディングパターンも
分解者パターン:// あとで書く!
とあるけど、きっとExtractorとおんなじような感じなのかな…?と脳内で勝手に完結
for とか while とか ジャンプとリターン とか
ラベル付きのbreakができるよ!らしい
この辺とかはjavaよりも強力ですよ〜な売りになるんだろうか
その他
四章チラ見して記憶したこと
out/inで共変/反変
staticなメソッド持てないよ 代わりにobjectってあるよ
5章ちら(ry
https://sites.google.com/site/tarokotlin/chap5/sec54
null安全かOptionかは使う人によって良し悪し変わるんだろうなぁ…
https://sites.google.com/site/tarokotlin/chap5/sec55
データクラスってケースクラスみたいなもんかな?
そしてさり気に一番下に「マイルストーン3以降では、タプル機能は廃止されています。」
の文言が…/(^o^)\
各所チラ見した感想としては、確かにScalaで満足してたらKotlinは要らんよ?
って感じなんだろうなぁ…と
まあそんなこと言い出したら、別にどの言語でもそれでいいじゃんになりそうな気はする。
ScalaとKotlinって、それ(Scala | Kotlin)で見たよ!
みたいな感じにお互いがなるんですかね。
ってことでざっくりテキトー予習終わり
おまけ
sbt → simple build tool
kbt → kantan build tool
だったら面白かったのに…(これが書きたかっただけだったりw)