たろー先生、Kotlinがわからないです(´;ω;`)

簡単な内容でkotlinとScalaを比較したかっただけなんですけど、思った以上にKotlin難しかった件
3
駄猫 @daneko0123

@ngsw_taro kotlinで ((1 .. 10) map {hoge(it)} filter { it != null }).fold(0){ (a:Int,b:Int) -> a + b } って書くと怒られるんだけどどうすればいいの?

2013-12-15 00:59:29
たろう @ngsw_taro

@daneko0123 いやフィルタでnullチェックしてもNotNull型にはならないので専用のメソッドを使ってNullableを省く必要があります。たぶん

2013-12-15 01:04:11
駄猫 @daneko0123

@ngsw_taro mjd なにそれだるい…

2013-12-15 01:04:35
たろう @ngsw_taro

@daneko0123 安全を保つには「だるい」はつきものですw

2013-12-15 01:17:46
駄猫 @daneko0123

@ngsw_taro filterした結果 notNullって自明なのに…

2013-12-15 01:18:08
たろう @ngsw_taro

@daneko0123 そこまでコンパイラは賢くないっす。ことりんにはNotNullに強制変換する!!っていう演算子があってだな

2013-12-15 01:22:16
駄猫 @daneko0123

@ngsw_taro やりたい事はこれだけなんです… たろーくんがNull安全Null安全 オーバーヘッドなくて素敵素敵いうから、検証したくて… https://t.co/eJOXISQFhQ

2013-12-15 01:24:25
たろう @ngsw_taro

@daneko0123 酔っぱらってるしスマホだし読めません(。´Д⊂)

2013-12-15 01:26:32
たろう @ngsw_taro

@daneko0123 短く書ければいいとは限らない!

2013-12-15 01:31:21
がくぞ @gakuzzzz

@daneko0123 @ngsw_taro しかも Scala だと flatMap 使えばもっと短くなりますね

2013-12-15 01:37:27
たろう @ngsw_taro

@gakuzzzz @daneko0123 それはもちろんですけどそこまでやるメリットがないんじゃないですか?あとOptionは単なる型なんでことりんでも導入はできますよ。実際、そういうライブラリがあります。個々の趣味に合わせるといいかも。

2013-12-15 01:41:37
がくぞ @gakuzzzz

@daneko0123 @ngsw_taro まさしく水島さんが前に主張されてた部分におもいっきり引っ掛った感じですね^^;;; http://t.co/gIOkMGmfen

2013-12-15 01:43:16
kmizu @kmizu

使ってみると、「実際にはnon-nullableなのに」型としてはnullableなのが結構でてきて、コンパイラによるエラーを回避するためだけにチェック構文入れるという本末転倒なことになって、実際にはそんなに便利じゃないなと思った。

2013-11-27 13:23:57
たろう @ngsw_taro

@gakuzzzz @daneko0123 JVMで動かしてかつJavaとの相互運用性を保ちたい、でもJavaは嫌だというのが合わさって、妥協点を探した結果がことりんのNull安全だと思います。妥協から生まれる仕組みなのでもちろんよくない点も少なくないと思いますが利点もあります

2013-12-15 01:47:58
たろう @ngsw_taro

ことりんみたいにNull安全を導入するデメリットは、コードが書きにくい、以外にはないと思うけど。それは動的言語好きな人が静的言語を面倒だと感じるのと同じ

2013-12-15 01:51:09
駄猫 @daneko0123

コードが書きにくいってすっごいデメリットだと思う派

2013-12-15 01:52:35
たろう @ngsw_taro

基本的に面倒な動作は安全をもたらす。例えば核ミサイルの発射スイッチは普通のスイッチじゃなくて、数ヵ所の遠隔地で1秒の狂いもなく同時に押さなければ発射しないとか。つまりそういうことだ。必ずトレードオフはあるから、どこに重きを置くかは人それぞれだけど。そこは好みとか思想の世界。

2013-12-15 01:58:25