Kotlin 2

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん2017/11/01(水) 00:07:43.82ID:jxmKQQAl
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org

前スレ
Kotlin
http://mevius.5ch.net/test/read.cgi/tech/1456505161/

2デフォルトの名無しさん2017/11/01(水) 00:09:21.20ID:S3J9ewzc
kotkot煮込んだJavaのスープ

3デフォルトの名無しさん2017/11/01(水) 00:10:25.85ID:ktrap7j9
ギャラクシーエンジェルのタイトルみたいだな

4デフォルトの名無しさん2017/11/01(水) 01:57:16.16ID:x/3omok5

5デフォルトの名無しさん2017/11/01(水) 01:58:25.77ID:x/3omok5
Google、KotlinをAndroidアプリ開発言語に選定
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。Realmが予測
http://www.publickey1.jp/blog/17/kotlinandroidrealm.html

6デフォルトの名無しさん2017/11/01(水) 08:47:27.86ID:3pYEq5sC
恐竜がいたら玉乗り仕込みたいね

7デフォルトの名無しさん2017/11/01(水) 13:26:42.48ID:8Fl3u9rT
名前の可愛さでいったら右に出るものがいない

8デフォルトの名無しさん2017/11/01(水) 20:25:18.56ID:55d56wrT
全然流行ってないね・・・

9デフォルトの名無しさん2017/11/01(水) 20:57:53.51ID:3pYEq5sC
独自クラスのオブジェクトを突っ込んだListのソート処理がKotlinだと楽すぎてワロタ
Comparatorとか実装する必要すらない

10デフォルトの名無しさん2017/11/01(水) 21:01:14.24ID:jurBUt2h

11デフォルトの名無しさん2017/11/01(水) 21:17:46.15ID:KQYcmJno
>>8
流行り初めてんだよ。ようやっと日本語の入門書が増え始めたんだから。
まずはAndroidアプリ用で使う人が増えると思う。

12デフォルトの名無しさん2017/11/01(水) 21:20:57.76ID:RmpG/IBv
海外だとアプリはもうKotlinがデフォルトらしい
http://tech.gunosy.io/entry/droidconNYC-2017

13デフォルトの名無しさん2017/11/01(水) 21:22:25.90ID:n8DQDdRQ
>>11
いちいち反応しなくていいよ…

14デフォルトの名無しさん2017/11/01(水) 22:03:41.76ID:3pYEq5sC
Kotlinの仕事にありつけてないお前ら全員失業wwwざまああwwww

15デフォルトの名無しさん2017/11/01(水) 22:07:42.20ID:K1kOfoLS
kotlinインアクション買った人いる?良さそう?

16デフォルトの名無しさん2017/11/01(水) 23:18:03.22ID:65SAREI7
ちょっとカジってみたけど、JavaとかC#とかScalaとかF#とかをごった煮にした感じだね
イマイチ新鮮味が無いけど、JVMでAndroidやらSpringやらで使えるっていうのが重要なのかな

17デフォルトの名無しさん2017/11/01(水) 23:50:48.17ID:n8DQDdRQ
下手に新機軸で目新しかったらScalaの轍を踏んでしまうだけだからな
Javaと併用するベターJavaの範囲を逸脱しなかったことでここまでの地位を短期間で得たのだ
ほどほどって何事も大事ね

18デフォルトの名無しさん2017/11/02(木) 02:41:34.42ID:LsnbbfZc
>>9
class Person(val age: Int, val name: String) { }

val mlist: MutableList<Person> = mutableListOf( );

mlist.add(Person(25, "Tom"));
mlist.add(Person(25, "Dave"));
mlist.add(Person(20, "Kate"));
mlist.add(Person(20, "Alice"));

val sortedList = mlist.sortedWith(compareBy({ it.age }, { it.name }))

sortedList.forEach {
println("${it.age} : ${it.name}")
}

出力
20 : Alice
20 : Kate
25 : Dave
25 : Tom

19デフォルトの名無しさん2017/11/02(木) 02:56:32.36ID:pq+UNRec
>>17
逆に言うと中途半端で
わざわざ覚えるのに
新しく使えるものが少ない

でもまあScalaだと
そこそこ難しくなってしまうから
Kotlinの方が流行るだろうね

20デフォルトの名無しさん2017/11/02(木) 08:50:34.61ID:Cum5cn5z
ボイラープレート自体が消えるということに喝采した人が多い
「それくらいIDEが自動で大量に書いてくれる」ではなく「そもそも無い」が好まれるのだ
視覚情報大事

21デフォルトの名無しさん2017/11/02(木) 12:58:30.02ID:U1n8VN2V
>>6
ヘッチャラ!

22デフォルトの名無しさん2017/11/02(木) 19:30:44.53ID:SsjTYyhv
android専用みたいになってるけど、
javaでやれることは、
全部kotlinでもできるの?

23デフォルトの名無しさん2017/11/02(木) 19:53:40.80ID:Cum5cn5z
誰だそんなAndroid専用とか変なこと言ってるの…
ただほんのちょっと、現時点でのJavaの新規用途や一般人用途がAndroidアプリ作成しかないだけじゃないか…

ということで「ふつうの」Javaが使えるとこはだいたいKotlinが使えるよ
企業に勤めてるような人でもない限り Javaプログラミング=Androidアプリプログラミング なのでそんな認識になってるだけだ
組み込みとかあのへんの大変そうなとこはたぶんまだ無理だけど、そういうとこに使えるかどうか気になるような人はKotlinが動作しうるかどうかは見てわかるだろう

24デフォルトの名無しさん2017/11/02(木) 20:45:39.00ID:n5fZR6Gb
ていうか Java にできて Kotlin にできない事ってあるのか?
そんなもん無いようにしか見えないんだが。

25デフォルトの名無しさん2017/11/02(木) 20:48:41.34ID:SsjTYyhv
>>23
ありがとうございます。
Javaの勉強中断して、
kotlinから始めてみます。

26デフォルトの名無しさん2017/11/02(木) 20:50:04.74ID:osyIV8kF
バグの量産はJavaにしか出来ない

27デフォルトの名無しさん2017/11/02(木) 21:13:31.03ID:ScvYxhm1
>>24
奴隷の大量使い捨て

28デフォルトの名無しさん2017/11/02(木) 21:17:36.20ID:Cum5cn5z
>>24
吐き出すのはただのclassファイルなんで、滅多なことではないと思うんだけど、断言できるほど知識もないのでドリームを残しておいた
きっと凄い人が無償で調べてカッコよく回答してくれるはずだ

29デフォルトの名無しさん2017/11/03(金) 00:42:19.00ID:mQ2prqq7
これまでのまとめ

Java にできて Kotlin にできないこと

1. バグの量産
2. 奴隷の大量使い捨て

30デフォルトの名無しさん2017/11/03(金) 00:43:31.08ID:nVcCm6Uk
kお前らが作ったら何使ってもバグの量産だろwww

31デフォルトの名無しさん2017/11/03(金) 00:46:00.51ID:+ZuXY7od
存在がバグみたいなお前に言われたくねーよwww

32デフォルトの名無しさん2017/11/03(金) 06:07:02.26ID:fxD35jMc
恐竜になれる

33デフォルトの名無しさん2017/11/03(金) 09:03:14.88ID:L9p6V4NW
読みで画像検索すると語感や方向性がよく分かる

画像検索 じゃば
https://www.google.co.jp/search?tbm=isch&q=%e3%81%98%e3%82%83%e3%81%b0

画像検索 ことりん
https://www.google.co.jp/search?tbm=isch&q=%e3%81%93%e3%81%a8%e3%82%8a%e3%82%93

34デフォルトの名無しさん2017/11/03(金) 09:26:39.80ID:1r95yYp8
>>33
これはひどいw

35デフォルトの名無しさん2017/11/03(金) 12:10:24.60ID:MxTlS5aq
flag |= x
flag &= ~x
これを
flag = flag or x
flag = flag and x.inv()
こう書かなきゃならない冗長さ

開発者曰く、可読性の問題なら関数にすればいいじゃんと

36デフォルトの名無しさん2017/11/03(金) 12:25:36.60ID:OuG6RHrP
超一般論としては論理演算子付き自己代入はそれによって陰に実行されるものがあんまり自明ではないので使わないほうがよい
あんまり自分の分析能力を信用してはイカンよ

37デフォルトの名無しさん2017/11/03(金) 13:13:37.26ID:wGONik3H
Kotlin in action読んだ
良いよ

38デフォルトの名無しさん2017/11/03(金) 13:24:04.81ID:mQ2prqq7
Kotlinインアクションはいいことはいいのだが索引が貧弱で、
例えばソートしようと思って索引見ても sort が載っていない。
じゃあ List のメソッドだろうということで List を探しても載っていない。
ということでリファレンスとして使えない。内容同じままでいいから索引を大幅拡充したの出して欲しい。

39デフォルトの名無しさん2017/11/03(金) 13:40:24.99ID:lM06sbH0
結構難しい言語だね

40デフォルトの名無しさん2017/11/03(金) 13:42:14.46ID:wGONik3H
エルビス演算子ってエルビス・プレスリーからきてたんだな

41デフォルトの名無しさん2017/11/03(金) 14:13:34.27ID:OuG6RHrP
エルビス・プレスリー知らない人も多そうだし、常識として知っててもなにがどうエルビスなのかわからん人もいそうだ
袖のじゃらじゃらした飾りだと思ってる人もいるけど違うからね ? は髪型だからね
https://image.slidesharecdn.com/fun-with-kotlin-160625143733/95/fun-with-kotlin-37-638.jpg

42デフォルトの名無しさん2017/11/03(金) 16:47:24.64ID:9CXEo34m
>>39
Scalaより簡単

43デフォルトの名無しさん2017/11/04(土) 00:16:44.84ID:onhYINWl
Kotlin in actionのおかげでやっとflatmapの意味が分かった

44デフォルトの名無しさん2017/11/04(土) 03:50:10.34ID:3cC+jj+w
ifとか式にできるくせに、代入文は式にできねぇの??しょっぺぇ。
while ((bytesRead = stream.read(bytes)) != -1)
とかできねぇの?しょっぺぇ

45デフォルトの名無しさん2017/11/04(土) 04:33:53.14ID:3cC+jj+w
あれ、ひょっとして、kotlinてまだシリアライズできねぇの??
しょっぺぇ・・・
普通にデータの保存にJavaのバイナリフォーマットのシリアライズ使ってたんだけどな・・・
あぼぼぼぼぼ。

46デフォルトの名無しさん2017/11/04(土) 05:51:43.84ID:UAaAlIwj
なんかかわいそう

47デフォルトの名無しさん2017/11/04(土) 07:35:45.71ID:NNCD/Zi9
生暖かい目で見守ってあげよう

48デフォルトの名無しさん2017/11/04(土) 08:18:58.07ID:hKqH3C3y
whileはみんなそこで詰まるNE!

Kotlinは条件部分で副次作用が起こることをよしとしないのだ
数少ない「単体部分で見ればJavaより記述量多い」部分なので、
我慢して明示的に変数定義に切り分けるか、素直に組み込みのBufferedReaderとか使ってくれ
よっぽどオリジナルでない限りwhileでなんかしてたやつは「whileの外ごとまとめて」3行くらいで書ける

49デフォルトの名無しさん2017/11/04(土) 10:23:22.90ID:jcPkxcYi
昔、ポインタ演算できないからJavaはしょぼい、というような主張してる奴が
たまに居たのを思い出した

50デフォルトの名無しさん2017/11/04(土) 11:18:50.17ID:onhYINWl
Kotlinの仕事ができてないお前ら失業確定www無職ざまあwwwwww

51デフォルトの名無しさん2017/11/04(土) 11:58:10.64ID:hKqH3C3y
>>49
Java使ってれば違和感なく移行できますと言われつつ、実際はプチパラダイムシフトの受け入れが必要なのはちょっと不誠実かなとは思う
我々は「うっひょー○○言語や××言語のアレみたいだね!」とか喜ぶわけなんだが
Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い

52デフォルトの名無しさん2017/11/04(土) 12:33:29.77ID:jcPkxcYi
>>51
アピールしてるのは「相互運用性が高いから移行できます」であって、「違和感なく移行できます」では無いよ
そういうのを書いてる第三者の記事はありそうだけど

公式的にはむしろ関数型に力入れてるのを売りにしてる

53デフォルトの名無しさん2017/11/04(土) 19:11:42.37ID:mE4V8fBV
>>51
> Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い

そうやって全く関数型やらモダン言語らしいとこ使わない違和感あるKotlinコードが出来そう

54デフォルトの名無しさん2017/11/04(土) 19:14:15.39ID:YWCXhaIP
プロパティと型推論しか使わないのもあり?
それならできそう。

55デフォルトの名無しさん2017/11/04(土) 22:23:46.53ID:g0AJbdlv
>>38
Kotlin in action買おうか迷っているけど、公式サイトの解説と比べてもっと深いことが書いてあったりする?
ちなみにKotlinスタートブック は読了済み。

56デフォルトの名無しさん2017/11/04(土) 22:34:52.81ID:U6RGh2Ax
>>54
javaとの対比だとプロパティとnull安全だな。最も有用
それ以外はコーディング的な進化だから追々覚えればよい

57デフォルトの名無しさん2017/11/05(日) 00:26:43.77ID:x5/Ij6xv
俺のお気に入りのF#はなんだかんだでnull残ってるから、その点はkotlin羨ましい

58デフォルトの名無しさん2017/11/05(日) 00:58:12.21ID:YBVMpJn0
残念ながらjava互換だからnullは無くならないのだよ

59デフォルトの名無しさん2017/11/05(日) 02:57:49.62ID:WRVCeBNz
ガードしない場合、ぬるぽが起こる割合はJavaとほぼ同じ
言語の仕組み上安楽にガードしやすいってだけの話だからね
しない・できない・忘れてたという場合はぬるぽぬるぽぬるぽだ
コードはまさに意図した通りではなく書いた通りに動く
そこでは思想など無意味だ

60デフォルトの名無しさん2017/11/05(日) 11:18:58.60ID:vfJyTH9D
Android Studioでのコード補完のパラメータ表示にInputStream!とか末尾に「!」が
ついてるんですが、これは何なんでしょうか?

61デフォルトの名無しさん2017/11/05(日) 11:55:04.18ID:WRVCeBNz
IntelliJ の T! は「T か T? のどちらか」を示す
つまりNullableかどうかすらわかんねえという記号

62デフォルトの名無しさん2017/11/05(日) 12:09:14.89ID:vfJyTH9D
>>60
ありがとうございます。Java絡みのは当たり前ですが、ほぼそうなってますね。
理解しました。

63デフォルトの名無しさん2017/11/05(日) 12:47:54.37ID:pFqd1r18
忘れてたって言ったって全部に?付けないとJavaと同じにならないわけで
?付けなけりゃコンパイル通らないしNULL安全意識せざるを得ない

64デフォルトの名無しさん2017/11/05(日) 14:29:21.23ID:kyKiHR5g
!! は、Nullable を、NotNull に強制変換する、危険な演算子だから、
requireNotNull 関数を使え

例えば、Java から、null が代入される場合、
String → IllegalStateException。ヌルポよりまし
String? → Nullable なのでOK

Platform Type
型を省略(String!) → デリファレンス時に、ヌルポ

Java からの戻り値がすべて、Nullable になるのは困るので、
その折衷案がPlatform Type

65642017/11/05(日) 14:35:11.49ID:kyKiHR5g
Java からの戻り値をすべて、Nullable にするのは面倒なので、
そのまま使ったのが、Platform Type

デリファレンス時に、ヌルポとなるため危険!

66デフォルトの名無しさん2017/11/05(日) 14:40:57.73ID:YBVMpJn0
めんどくせえな

67デフォルトの名無しさん2017/11/05(日) 15:03:32.80ID:cR0WBKoF
Javaのほうのコードに@NonNullアノテーションつけとけば、KotlinからT!じゃなくてTとして扱える

68デフォルトの名無しさん2017/11/05(日) 15:52:17.12ID:WRVCeBNz
現代的な気遣いのされてるJavaライブラリはKotlinからでも便利に扱える
シガラミがあって旧来のままのライブラリはそりゃ利用者側が手間かけるしかない

69デフォルトの名無しさん2017/11/05(日) 16:52:07.10ID:J++DNvfV
ラッパークラス作るぐらいしか方法なさそうだな

70デフォルトの名無しさん2017/11/05(日) 18:48:00.64ID:WL5EiVt2
ラッパークラスもありだし、OSSなライブラリだったらアノテーション付与してPR送るのも有用だな

71デフォルトの名無しさん2017/11/05(日) 19:23:52.87ID:giKdejUB
Kotlinから使いやすくなりました! みたいに言えるのはひょっとしたら売りになるかもしれんね

72デフォルトの名無しさん2017/11/05(日) 19:25:37.10ID:zDQnBwdh
ことりちゃん、マジ使いやすいぜグフフ

73デフォルトの名無しさん2017/11/05(日) 19:26:26.36ID:YBVMpJn0
ことりんの擬人化はよ

74デフォルトの名無しさん2017/11/05(日) 20:25:14.58ID:UMg3GOyt

75デフォルトの名無しさん2017/11/05(日) 22:47:01.75ID:z1YM2S+z
(・8・)

76デフォルトの名無しさん2017/11/06(月) 10:56:08.46ID:OqkByGQj
やはり擬人化が必要だな
萌えキャラで

77デフォルトの名無しさん2017/11/06(月) 11:49:59.43ID:kblaZiQ3
何のために必要なの?

78デフォルトの名無しさん2017/11/06(月) 13:01:01.21ID:V0vtn4gd
それは君には中々理解できない理由による。

例えば以前Appleが傾いた時にジョブズが復帰してiMacを作ってAppleは救われたが、iMacはハードウェアとしてそんなに素晴らしかっただろうか?
たいして素晴らしくはないのだ。ブラウン管ディスプレイに本体入れて一体化しただけだ。しかし売れた。なぜか?
デザインがよかったからだ。コンピュータとしてはどうでもいい見た目が売れ行きに多大に影響した。
技術者から見ればどうでもよさそうなものでも甘く見てはいけないということだ。

79デフォルトの名無しさん2017/11/06(月) 13:32:09.21ID:wZC/0idP
>>77
技術的な話をスレでされても理解できなくて不愉快だから「とにかくほかの話」をさせたがっている
知らない言語のスレなんて見なきゃいいのにね

80デフォルトの名無しさん2017/11/06(月) 15:15:58.89ID:DlVzck/L
goが人気になった要因もgopher君が半分くらいあるからな。ことりんはいいな

81デフォルトの名無しさん2017/11/06(月) 15:18:23.96ID:8DS1P3Ga
ほんとおまえらはばかだなあ
日本の電子IT系なんてオタクの巣窟なんだから萌えキャラことりんで流行言語間違いなしやで

82デフォルトの名無しさん2017/11/06(月) 16:21:48.60ID:kblaZiQ3
うわぁ、、、

83デフォルトの名無しさん2017/11/06(月) 16:34:20.33ID:9YhppvEm
ことりんとペアプログラミングしたい

84デフォルトの名無しさん2017/11/06(月) 19:29:33.22ID:otMLf3Eu
「ことりん」のライバルが「ざまりん」で草

85デフォルトの名無しさん2017/11/06(月) 20:50:33.70ID:iuxlkbQ9
インアクションとなんとか太郎本どっち買おう
後者は本屋で見たんだけど

86デフォルトの名無しさん2017/11/06(月) 21:11:27.46ID:RNAOm4Mq
目指すとこがちゃうからな
現在どのくらい習熟してるかにもよるかと

87デフォルトの名無しさん2017/11/07(火) 06:11:35.45ID:uepCx6fG
「たのしいRuby 第5版、2016」高橋 征義
「みんなのPython 第4版、2017」柴田 淳
「Kotlinスタートブック、2016」長澤 太郎

この辺は、日本では、避けては通れない人達

88デフォルトの名無しさん2017/11/07(火) 06:23:46.73ID:W6HmiFf1
逆に避けなくてはいけない人達はだれ?

89デフォルトの名無しさん2017/11/07(火) 07:22:52.64ID:atDIxfPJ
掌田津耶乃

90デフォルトの名無しさん2017/11/07(火) 08:53:40.81ID:kYRdbaxp
掌田津耶乃

91デフォルトの名無しさん2017/11/07(火) 12:19:01.95ID:yzrwY/tJ
そうなの?どういう点がまずいの?

92デフォルトの名無しさん2017/11/07(火) 12:37:41.70ID:08KjVeec
内容が薄い

93デフォルトの名無しさん2017/11/07(火) 12:40:11.22ID:yzrwY/tJ
なるほど。
濃いめなのは?

94デフォルトの名無しさん2017/11/07(火) 12:53:17.32ID:atDIxfPJ
>>91
公式のチュートリアルをパクって
チョコっと変えて解説してるだけ

95デフォルトの名無しさん2017/11/07(火) 14:06:00.83ID:uepCx6fG
掌田津耶乃は、ほとんどの言語・フレームワーク・開発環境の、本を書いてる

売れ筋では、必ず顔を出す。
売れる分野に、掌田あり!

96デフォルトの名無しさん2017/11/07(火) 17:10:16.14ID:qyKBmVxs
公式見て自習しろや、が通じるならセミナーとか講演会とか必要ないわけでな(いや、これに関しては別に必要ないとは思ってるが)
世の中の需要はあんまりロジカルではないのだ

97デフォルトの名無しさん2017/11/07(火) 21:38:52.62ID:tWasbjrL
>>85
太郎しか読んでないでActionは買ったばかりだけど、
Javaは一通りで来てKotlinをとりあえずやってみたいなら太郎、
Kotlinにどっぷり漬かることが確定しているならAction?かな
いずれにしてもJavaの理解はないとかなり不利。

>>95
器用貧乏というやつですね、わかります。

98デフォルトの名無しさん2017/11/07(火) 22:51:30.64ID:6NdbJPOz
昔の河西か

99デフォルトの名無しさん2017/11/07(火) 23:03:28.24ID:kYRdbaxp
入門書ばっかり書いて金儲けするのが目的なんだろう

100デフォルトの名無しさん2017/11/07(火) 23:20:19.14ID:hhPr1fc6
やってみるとわかるのだが(やらなくてもいいが)、中上級者向けの本というのは全然儲からないのだ
書くの時間かかるし分厚くなって値段高くなるし売れなくなるしチェック内容増えるし時代遅れが混じるし下手すると共書だし
出来によっては「あのすごい便利な本を書いた人」という称号はいくらかの称賛になり、ひょっとしたら生活豊かルートをも開拓するかもしれないが、分は悪い
初心者向けの本をひとりで年に2冊くらい書いてたほうが、志低いと揶揄されながらもきちんと生活できるのさ

101デフォルトの名無しさん2017/11/08(水) 01:07:22.53ID:3tNQk30d
粗製濫造して食う飯はうまいか

102デフォルトの名無しさん2017/11/08(水) 01:24:37.30ID:pvxNciwf
やってみるとわかるとな?

103デフォルトの名無しさん2017/11/08(水) 05:57:05.62ID:Z7LnM2jK
掌田津耶乃って何者? (Late 2012)
http://egg.2ch.net/test/read.cgi/mac/1349360916/

1 :Mac Fan Letterより転載 [sage] :2012/10/04(木) 23:28:36.22 ID:ZGQCgQTH0
● ネットサーフの溺死者たち
「友がみな我より偉く見ゆる日よ」

「2チャンネル」という最低最悪のサイトがある。

104デフォルトの名無しさん2017/11/08(水) 06:28:34.57ID:ShM00Q+N
>>94
器用貧乏とは言ったものの、翻訳書が原書+1000円くらいの値段になることがざらなことを考えると
英語の公式チュートリアルを訳しただけでも、値段相応なのかもしれん。

しかし、著者のことをよく知らずにタイトルだけでうっかり買ってしまったものの身にもなって欲しい(自己責任)
深く理解した上で書かれた本かどうかは、(本を必要とするレベルの人には)立ち読み程度ではわからない。

105デフォルトの名無しさん2017/11/08(水) 08:32:48.67ID:a/cZ4nXd
Kotlinに限らずあれもこれも全く初心者に寄り添っていないことを鑑みると、初心者向けの本を書くというだけで価値があるのやもしれぬ
あなたがライブラリマニュアル作るときに開発環境のダウンロードやプログラミング言語の文法から説明しないのと同じだ

106デフォルトの名無しさん2017/11/09(木) 10:27:49.04ID:IVrwQxMl
「単純に意味や役割が似通ってるメソッドを集めただけのメソッド集」を表すものってないですかね
Rubyでいうmoduleみたいなやつ
特にどのオブジェクトに属してるってわけでもない、誰も初期化しなくてよくてすぐメソッドが使えるやつ
いまobjectでシングルトンクラスにしてるけど、なんか漂う特別感に違和感が

107デフォルトの名無しさん2017/11/09(木) 12:13:06.41ID:77e4Bz/I
適当なネームスペースで、メソッドじゃなくて関数だけ複数定義したファイルを作ればいいんじゃないかな?

108デフォルトの名無しさん2017/11/09(木) 13:29:13.78ID:IVrwQxMl
ああなるほど、packageで分ければいいのか…
シングルトンクラスの中に書くよりはしっくりくる…ような…気が…す…うん、そういうものだと思うことにします

109デフォルトの名無しさん2017/11/09(木) 21:56:51.74ID:+8G/D3P4
Kotlinで以下の処理をスマートに書き直したらどうなりますか

int idx = -1;
for (int i=0; i<list.size(); i++) {
  if (list[i].data == data) {
    idx = i;
    break;
  }
}
(idxを使った処理)

110デフォルトの名無しさん2017/11/09(木) 22:05:39.85ID:UXPTP/DS
val idx = list.indexOfFirst{ it.data == data }

111デフォルトの名無しさん2017/11/09(木) 22:25:18.35ID:UmUHoiDy
逆引き、ポケットリファレンスものを出して

112デフォルトの名無しさん2017/11/09(木) 22:52:38.14ID:+8G/D3P4
>>110
サンクス!まさか1行でできてしまうとは。。
Android Studioに貼り付けてもこうはならないよね

113デフォルトの名無しさん2017/11/10(金) 09:13:11.87ID:oAWKYFWM
>>111
とりあえずここで質問すれば答えが書かれるので、後でまとめページを作れば良い。

114デフォルトの名無しさん2017/11/10(金) 09:42:49.25ID:ju9EA6eo
Kotlin、、怖ろしい子。。

115デフォルトの名無しさん2017/11/11(土) 02:40:35.26ID:BhMQDmGd
じゃばの妹ことりん

116デフォルトの名無しさん2017/11/11(土) 03:22:51.50ID:xG+5Xfzv
>>115
なんだその国民の妹みたいな表現は

117デフォルトの名無しさん2017/11/11(土) 10:02:03.10ID:N7WPFjKT
ことりん星からやったきたことりん

118デフォルトの名無しさん2017/11/11(土) 10:10:11.58ID:ydtAG8Bz
>>117
それ最後に爆発するやつじゃんw

119デフォルトの名無しさん2017/11/11(土) 11:27:33.83ID:GExxj/Q0
お前ら「よーし新しく覚えたKotlinのあんな技こんな技使ってコーディングするぞー」
〜 数日後コードレビュー 〜
リーダー「あー、これ全部Javaと同じ感じで作り直しといてネ、ヨロシク」

120デフォルトの名無しさん2017/11/11(土) 13:22:59.28ID:2zKmkyWC
ゆうこりん

121デフォルトの名無しさん2017/11/11(土) 14:04:32.65ID:7fLEJN4j
>>119
コーディングルールでピュアJava使えってなってるならただのアホだろw

122デフォルトの名無しさん2017/11/11(土) 21:12:50.74ID:F2DPX6tK
>>121
トップがKotlinへの移行を目指して次はKotlinとJavaの混在プロジェクトにするとか言って、
でも所属するチームのトップがJavaしか使わないとかいうシナリオなら、
>>119のような事が起きたとしても>>121の言うような矛盾はない...と思う。

1231222017/11/11(土) 21:14:35.14ID:F2DPX6tK
そして逆コンパイルしたJavaを提出して盛大に怒られる...みたいな。

こんなことで連投してスマン

124デフォルトの名無しさん2017/11/12(日) 01:41:23.15ID:x+b1eGgz
そんな会社辞めちまえ

125デフォルトの名無しさん2017/11/12(日) 02:34:42.29ID:0YSprajH
君、セミコロンを忘れているよ。

126デフォルトの名無しさん2017/11/13(月) 09:38:49.46ID:Ffr39/Md

127デフォルトの名無しさん2017/11/15(水) 06:46:05.48ID:cIMRwHcF
>>126
君、中身を忘れているよ^^;

128デフォルトの名無しさん2017/11/15(水) 12:16:34.07ID:XQCt13cq
println(";")

129デフォルトの名無しさん2017/11/15(水) 12:45:09.17ID:P+eW6LIt
ぷりんとりん

130デフォルトの名無しさん2017/11/15(水) 17:33:26.94ID:NOd3J7Vc
そういや print って印刷って意味だよな。もはや時代も変わり誰も印刷してないのにプログラミング言語では print で出力が定番になっちゃったな。

131デフォルトの名無しさん2017/11/15(水) 18:04:14.40ID:svkVDlGw
厳密には印字なのでギリギリ合ってる
原初のBASICのPRINT対象はテレタイプだったから印刷するという意図とはそもそもちょっとだけ違う

132デフォルトの名無しさん2017/11/15(水) 18:13:51.46ID:B4seksg+
ポワトリン

133デフォルトの名無しさん2017/11/15(水) 20:09:08.28ID:hiEIJUlA
ブラウン管に文字を焼き付けるから print

無理があるな。

134デフォルトの名無しさん2017/11/16(木) 10:46:41.50ID:Wcsn/bEa
printの古い意味は押すだからな

135デフォルトの名無しさん2017/11/16(木) 11:23:36.83ID:pe2ew9X7
そういえば昔、プリントごっこで押しまくってたな

136デフォルトの名無しさん2017/11/16(木) 11:54:15.38ID:czRbGJih
putもあるやん

137デフォルトの名無しさん2017/11/16(木) 12:14:02.89ID:Wcsn/bEa
>>136
putは置く

138デフォルトの名無しさん2017/11/16(木) 16:02:46.86ID:bDWmFK6d
押して痕跡残すようなのが print だな。

139デフォルトの名無しさん2017/11/16(木) 20:15:28.89ID:Sk98YgzR
kotlinの文法ってちょっと省略しすぎだし、やりすぎじゃねぇの・・・
C#の方がバランス取れてるわ。

140デフォルトの名無しさん2017/11/16(木) 21:14:22.81ID:3Aqd/ZMZ
>>139
具体的にはどういう文法のこと言ってるの?

141デフォルトの名無しさん2017/11/17(金) 08:55:38.80ID:YqqDZ5Dd
慣れの問題だと思うけどなあ

142デフォルトの名無しさん2017/11/17(金) 09:43:27.88ID:Ddb5xKAY
抽象化と少ないコードが正義な昨今の風潮ではこういう文法が受ける
本当にこれで良かったのかは後10年ぐらいしたらわかるだろう

143デフォルトの名無しさん2017/11/17(金) 09:59:51.99ID:QGpoznNs
>>140
どれがとは言いにくいけど>>139の言いたいこともわかる気がする。
個人的にはコンストラクタをクラス宣言に書けば、フィールドやコンストラクタの宣言を省略できる仕様とか。
2つ以上のコンストラクタを定義したり複雑なコンストラクタを定義しようとするときの表現に一貫性がなくなったと思う。
フィールド(Kotlinではプロパティだっけ)の記述場所もクラス宣言と本体にバラバラの配置になるし。

Javaにしとけばいいのかもしれないけど、null安全に書いてみたいと思って使っている。
あとwhenがお気に入り。

144デフォルトの名無しさん2017/11/17(金) 10:24:11.98ID:welKudTx
CP/M80上で動くKotlin処理系が無い…

145デフォルトの名無しさん2017/11/17(金) 10:46:54.88ID:8xh7qM4F
これはこれで同じこと書いてる感がん〜って感じではある
class MyData(name: String, age: Int){
val name = name
val age = age
}
引数にval書けちゃうことでの「見かけ一貫性の破れ」と「引数もチェックしなければならなくなったという手間」は肯定する

146デフォルトの名無しさん2017/11/17(金) 10:51:53.19ID:ENBrszFD
というかあれはdataクラスを便利に書くためだけのギミックな気がするぞ
しかし言われてみれば視線的にめっちゃ遠いのはその通りだな、家のやつは今度使わずに書いてみるか

147デフォルトの名無しさん2017/11/17(金) 11:08:33.26ID:YqqDZ5Dd
>>144
JavaVMが動かんわw

148デフォルトの名無しさん2017/11/17(金) 15:22:12.81ID:4edLbtL+
KotlinがNull安全といっても結局、Javaなどの使用するクラスライブラリがNull安全じゃないからな。
Kotlinだけで閉じてればいいけど、Kotlin最小限のライブラリしか用意してねぇし。どうすりゃいいんでしょうか??
「!!」演算子積極的に使えばいいの?

149デフォルトの名無しさん2017/11/17(金) 15:36:01.97ID:ocCweAVX
自分のメソッドは全部ヌルポ無しにすればいい。

150デフォルトの名無しさん2017/11/17(金) 15:42:27.11ID:4edLbtL+
うん。自分のメソッドはNot Nullにしてるけど、その実装で結局、Javaのクラスが絡む事多いから、
その実装部分で「!!」連発してるんだけど、なんだかなぁ・・・・・

151デフォルトの名無しさん2017/11/17(金) 15:49:49.94ID:ENBrszFD
ぬるぽが出そうならトラップするという記法がKotlinにはいくつもあるだろそれ使え

chackNotNull(nullable){ "ぬるぽだけは阻止しましたが例外で落ちますさようなら" }
nullable?.aaa?.bbb ?: throw RuntimeException("エラーとぬるぽって死ぬ点で大差なくね?")
when(){
nullable == null -> println("おかあさんに言いつける")
isSomeState -> nullable.xxx.yyy // 文脈上nullが来得ないので ?. で書かなくていい
}

152デフォルトの名無しさん2017/11/17(金) 15:51:51.91ID:ENBrszFD
ああまた空whenに()つけてる
毎回間違って毎回IDEに文句言われるんだよなこれ

153デフォルトの名無しさん2017/11/17(金) 16:16:30.86ID:4edLbtL+
>ぬるぽが出そうならトラップ
ぬるぽが出そうというより、Javaのクラスから返される型は「型名!」ってAndroid Studioを
表示されてて、この型ってNullableの「型名?」と同じでNullチェックしないといけないと思ってて
「!!」連発してたんだが、これ違うな・・・

「型名!」ってNullチェックしなくてもいいのか・・・
つか、言語仕様上どんな扱いになってんだこれ・・

154デフォルトの名無しさん2017/11/17(金) 16:19:43.26ID:4edLbtL+
>>60で質問したときに、>>61で答えてもらって
ただのIDEの表示上の事なんだと思ってたが違うのか??

155デフォルトの名無しさん2017/11/17(金) 16:38:25.33ID:ENBrszFD
T? と T or T? は違うよ
Nullableかどうかすらわからない後者の場合はnullチェックしなくてもコンパイルは通るよ
「だってそれはNullableではないから」
まあ、そしてぬるぽが出るんだけども
Kotlin的にはnullチェックは不要だけどIDE的にはnullが入りうることがわかってるので気を付けてね! の ! だ

156デフォルトの名無しさん2017/11/17(金) 17:00:12.18ID:4edLbtL+
>>155
ありがとうございます。
Platform Typesについてしっかり読んでませんでした。そこに色々書いてありましたね。

157デフォルトの名無しさん2017/11/17(金) 17:09:53.72ID:4edLbtL+
>T? と T or T? は違うよ
T or T?がプラットフォーム型というやつですかね。で、プラットフォーム型ではNullチェックが緩和される
って書いてありましたね。

T? と T or T? は同じと勘違いしてました。要はT or T?か分からないから、よりたくさん表現できるT?として扱えばいいし、
そうなってるのかと勘違いしてました。

158デフォルトの名無しさん2017/11/17(金) 17:41:51.36ID:4edLbtL+
つか、デバッグしてて思ったけど、C#のusing (resource)やlock文に相当する言語組み込みの
文がkotlinにないのがちょっとめんどくさいよね。ステップオバーで順にどんどん進めねぇじゃねぇか・・
inputStream.use {
 // いちいちここにブレークポイント設定しないと・・・
}とかだと、実態は関数呼び出しだから、ステップオーバーだと、内部のブロック飛び越えちゃう・・

159デフォルトの名無しさん2017/11/17(金) 17:57:25.06ID:ENBrszFD
ステップイン/ステップアウトではだめなのか

160デフォルトの名無しさん2017/11/17(金) 18:06:21.43ID:4edLbtL+
ああ、ステップインで行けたね。ステップインすると、最初useなどの拡張関数の方にぶっとぶかと思ったけど、
自分のブロックの方に直接飛べるのか。
まぁ、オーバー・インを切り替えるのひと手間だけど、まぁそれぐらいなら。

161デフォルトの名無しさん2017/11/17(金) 20:50:48.90ID:4edLbtL+
正直、AndroidのJavaの代替としてKotlinを使うなら、Android Studio 3.0でJavaで全APIレベルでラムダ式が
使えるようになったらしいし、後、Javaにvarなどのローカル変数の型推論あたりがくれば、Javaでも
いいかなと思うが(async/awaitもほしいけど)、Kotlin for JavaScriptの存在を知って、
ちょうど、JavaScriptとかスクリプト言語を本格的に使った事なく動的型付け言語使いたくない自分にぴったしだと
思ってKotlin覚えてみようかなと思ってきた。

Kotlin,JavaScriptでググってもあんま引っかからんけど、TypeScriptとかにとって代わったりしそうじゃねぇか??

162デフォルトの名無しさん2017/11/17(金) 21:21:37.83ID:3GAWOghK
>>161
> Javaにvarなどのローカル変数の型推論あたりがくれば

それ実現されるまでまってられっかよ

163デフォルトの名無しさん2017/11/17(金) 21:40:35.61ID:/4Y2zvAi
Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS(ES5), Flash, PHP, C++, Java, C#, Python, Lua に書き出せる。
Windows8.1対応。IDEは、FlashDevelop

このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/

Kotlin = Java + Groovy

Haxe, Kotlin, Ruby をやると、他の言語がクソに見える

164デフォルトの名無しさん2017/11/17(金) 22:45:03.99ID:mCQOvNmw
Hexe ってドイツ語で魔女って意味だな

165デフォルトの名無しさん2017/11/17(金) 23:45:36.46ID:aGWwpVlc
>>163
言語がどうのこうの言ってるうちは、まだまだだよ。

166252017/11/18(土) 00:02:14.05ID:oC0amP9+
kotlinから始めたら挫折して、
結局Javaの勉強再開しました。
何個かアプリ作れるようになったけどまだまだ。
Java覚えたらkotlinまで追いつきたい。

167デフォルトの名無しさん2017/11/18(土) 00:31:51.67ID:ZnPkEcCx
Javaで動くアプリ作れてKotlin書けないってのもわりとレアケースだと思うのだが(完全に全くJava以外の経験がないとか?)
まあ個人の進度に文句もないしKotlinはしばらく逃げないので焦らずお好きにやっていただきたい

168デフォルトの名無しさん2017/11/18(土) 00:47:06.52ID:oC0amP9+
>>167
Javaの勉強途中でちょうどkotlinが盛り上がってて、
両方覚えられる!と欲張った結果、
なんか情報も少なく、混乱して挫折。
とりあえずJavaで慣れたらkotlinもやってみます。

169デフォルトの名無しさん2017/11/18(土) 16:34:14.39ID:6foiYhRZ
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

170デフォルトの名無しさん2017/11/18(土) 16:40:27.50ID:d2ucUmS6
ngsw tr

171デフォルトの名無しさん2017/11/18(土) 16:53:48.97ID:UH67JXx8
プログラミング言語初学に向かないのは多分間違いない

172デフォルトの名無しさん2017/11/19(日) 08:38:46.28ID:OIO3sRlf
C#のusingもJavaのtry-with-resourcesもkotlin.io.useも気に入らない

GCだからC++やSwiftのようなデストラクタまでは無くてもいいけど
せめて use val xx = ... のようにキーワード付き変数の場合に
スコープアウトでcloseする構文を用意して欲しい

後処理の指定ごときでいちいちブロックスコープ増やすなと

173デフォルトの名無しさん2017/11/19(日) 11:36:10.68ID:8FVAlHGr
>>172
中括弧省略すればブロックスコープ増えないし、ほぼそれと同じ構文で書けるやん

174デフォルトの名無しさん2017/11/19(日) 11:57:19.58ID:2bHJHjAx
そーゆークラスを作ればいい
内部的にはそうしてても使う側が意識しなきゃそれでいい

175デフォルトの名無しさん2017/11/19(日) 12:11:45.04ID:IcfiaN/i
StackOverFlowで「○○するにはどうすればいいですか」に対して
自作の20行くらいの関数返して「こうすれば1行で書ける」とか言う回答者みたいだなw

176デフォルトの名無しさん2017/11/19(日) 13:20:53.07ID:OIO3sRlf
例えばこれを

  openCamera(id).use { dev ->
    dev.video().use { vidIn ->
      File(dstPath).outputStream().use { output ->
        val vidOut = videoWriter(output)
        vidIn.eachFrame { frame ->
          filter.write(frame, vidOut)
          return checkContinue()
        }
      }
    }
  }

このように

  use val dev = cameraOpen(id)
  use val vidIn = dev.video()
  use val output = File(dstPath).outputStream()
  val vidOut = videoWriter(output)
  vidIn.eachFrame { frame ->
    filter.write(frame, vidOut)
    return checkContinue()
  }

177デフォルトの名無しさん2017/11/19(日) 13:22:16.49ID:OIO3sRlf
次点で、golangのdeferのように

  val dev = cameraOpen(id)
  defer{dev.close()}
  
  val vidIn = dev.video()
  defer{vidIn.close()}
  
  val output = File(dstPath).outputStream()
  defer{output.close()}
  
  val vidOut = videoWriter(output)
  vidIn.eachFrame { frame ->
    filter.write(frame, vidOut)
    return checkContinue()
  }

としたい
usingやuse関数での書き方が駄目とまでは言わないが俺は気に入らない

178デフォルトの名無しさん2017/11/19(日) 14:00:39.13ID:uqF6CIR0
そういやjetbrainのIDEってjavaで出来てるんだよな。
kotlinで書き直されたりしてんのかな。そのへんどうなの?中の人とか?

179デフォルトの名無しさん2017/11/19(日) 14:24:47.63ID:OIO3sRlf
>>173
どういうこと?

180デフォルトの名無しさん2017/11/19(日) 15:32:50.61ID:XHxD1mSV
>>176 >>177
純粋な興味で質問するんだけど
その書き方で各段階のデバイスオープン不可だったとき対処できる言語ってあるの?try-catchで括っておくとかなのかな。

>>176の下の書式は最初のデバイスがヌルが返ってきたときに雪崩式にハングしそう。
>>177は最初にデバイスクローズして下に流れたらどうなってしまうのか。

181デフォルトの名無しさん2017/11/19(日) 15:53:26.75ID:YGg5hSh9
try-with-resourcesみたいに「ここでリソース開いてるしエラーも起こりうるぞ!」って明示してくれるのが好き

182デフォルトの名無しさん2017/11/19(日) 16:35:29.23ID:ziYSLzJF
文句の本質的には「ブロックネスト深すぎて見かけの空白多くてキモい」ってだけだよねコレ
まあ見かけはかなり重要なのだが
どこでcloseが起こるかわかるほうがいいとは思うけどな
ブロック深いのとは別件な気がする

183デフォルトの名無しさん2017/11/19(日) 17:52:32.52ID:OIO3sRlf
>>180
3例とも同じ動作想定のサンプルコードだよ
オープン不可はnullでなく例外、どこで例外が起きても開いた分はcloseされる

>>182
そう、キモいってだけ
実行のタイミングと順序は厳密に決まるからどこでcloseが起こるかは分かる
closeの仕掛けとブロック増加が不可分なのが気に入らないという話

184デフォルトの名無しさん2017/11/19(日) 19:48:25.52ID:8FVAlHGr
>>179
if文で中括弧を省略できるのと一緒

185デフォルトの名無しさん2017/11/19(日) 20:14:04.01ID:wMfO08BI
kotlinはまず開発環境をもっと整えてほしいわ。
特にVisual Studio Codeで無料の拡張プラグインを。
JetBrainはIDEを打ってる会社なのかもしれんが・・

186デフォルトの名無しさん2017/11/19(日) 20:34:18.95ID:OIO3sRlf
>>184
すまんそれがどう「ほぼそれと同じ構文」に繋がるのかイメージ出来ない
>>176の例だとどうなる?

187デフォルトの名無しさん2017/11/19(日) 20:38:00.92ID:ziYSLzJF
forを読めるが書けない
これだけが毎回全く覚えられない(あの形式はレガシーであって何の意味もないと思う)
イテレータでいいと思うのだが、Rangeはなにやら遅いとか言われてて憂鬱だ

188デフォルトの名無しさん2017/11/19(日) 20:49:57.92ID:8FVAlHGr
>>186
書いてみ

189デフォルトの名無しさん2017/11/19(日) 21:05:03.09ID:OIO3sRlf
>>188
いや、イメージ出来ないから書いてよ

190デフォルトの名無しさん2017/11/19(日) 21:12:25.17ID:rL41c0pH
>>178,185
誤 : JetBrain
正 : JetBrains

191デフォルトの名無しさん2017/11/19(日) 21:19:58.43ID:8FVAlHGr
>>189
ifの中括弧省略と一緒と聞いて本当にわからないのであれば重症やな

192デフォルトの名無しさん2017/11/19(日) 21:50:45.20ID:OIO3sRlf
>>191
煽ってくる意味が分からない
具体例を示すだけだと思うんだが・・・

193デフォルトの名無しさん2017/11/19(日) 22:15:39.30ID:VtdgNv5T
>>176はそんなにopenとcloseをしないといけないのはクラス設計に問題があるのではないだろうか。
そこまでしないといけないことが頻繁にあるケースはまれだと思うので、拡張関数を定義して解決しては。
あと、個人が気に入らないと思うたびに構文を増やしたらC++みたいになるのは歴史が示すところかと。

>>173
Kotlinでは>>176のケースはif式のように{}を省略することはできないような気がするのですが。
省略できても見かけのブロックがなくなるだけで、多重ネスト構造なのは変わらない気がする。

194デフォルトの名無しさん2017/11/20(月) 00:57:34.61ID:iI7hyhyt
>>191
俺も分からないので是非書いて欲しい。
こちらはKotlin学習中なので重症ではない。単にわからないだけだ。

195デフォルトの名無しさん2017/11/20(月) 03:18:31.42ID:GkhyFhEh
>>177
File.open(ファイル名) do |file|
処理
end

Ruby では、File.open()に、クロージャの実装である、ブロックを渡すと、
close()する必要がなくなる。
自動的に内部的に、例外処理で囲んで、finally で、close してくれる

たいていの言語で、そう

196デフォルトの名無しさん2017/11/21(火) 07:47:12.65ID:UlNCYsFF
JVM版とNative版など環境がいくつかあるけど、標準ライブラリは基本共通なの?

197デフォルトの名無しさん2017/11/21(火) 11:37:34.13ID:y9fg6IYd
こういう風に違うシグネチャの関数の参照はどうしたら良いのか?
https://ideone.com/jXVu5V

198デフォルトの名無しさん2017/11/21(火) 12:00:29.42ID:7oGfHzA7
未対応なので回避策とるくらいしか
val fa = {n:Int -> f(n) }
val fb = {n:Int, s:String -> f(n, s) }

199デフォルトの名無しさん2017/11/21(火) 12:29:26.29ID:y9fg6IYd
あ。未対応だったのか。どうりでいくら調べても見つからないと思った。
それならそんな風に書くしかないね。

200デフォルトの名無しさん2017/11/21(火) 13:08:24.36ID:7oGfHzA7
>>199
ごめん変数/引数の型指定があれば解決出来るみたい
https://ideone.com/CzyR3A

201デフォルトの名無しさん2017/11/21(火) 14:11:23.59ID:tR+VGZDq
>>200
おー。なるほど。ありがとう。

まあでも自分でシグネチャ指定して振り分ける感じに書く必要はあるということだね(Cでの関数へのポインタみたいなもんだからそうならざるを得ないか)。

202デフォルトの名無しさん2017/11/21(火) 21:30:56.20ID:PjtBzSS0
>>196
コアの標準ライブラリは原則共通だが、JS, JVM(, Natevie)ごとに専用の「標準」ライブラリがある。
https://kotlinlang.org/api/latest/jvm/stdlib/index.html

203デフォルトの名無しさん2017/11/25(土) 13:24:58.89ID:x3Ny6L+y
あるメソッドの中の処理を切り出して作った1行系プライベートメソッドってあるよね
親メソッドの前に書いたほうがいい? 後に書いたほうがいい?
親メソッドに長いJavaDoc、または長めのコメントがある場合、前に書いちゃうとプライベートメソッドが離れちゃって見難い/醜いよね

  // subするメソッド
  private fun subMethod() = ...

  /*
  * メインなことをするメソッド
  * がんばってつくりました
  * 3行も説明書いたのでボーナスください
  */
  fun mainMethod(arg: SomeObj){
   ...
  }

そういう意味ではメインのあとに書いたほうがいいんだけど、親メソッド読んでる最中に見たことないメソッドが出てきちゃって「ん??」ってなるよね

  fun mainMethod{
   ...
   ....subMethod(...) ← えっコレ何?
  }

  private fun subMethod() = ←定義ここかよおせーよ

Java書いたことないからこのへんの作法わかんないんだけど、なにか傾向とかあるのかな

204デフォルトの名無しさん2017/11/25(土) 14:14:06.62ID:UdkhV+zK
IDEの機能で定義に飛ぶから別に気にならない
ソースファイルを上から順に眺めていくってあんまりないなあ

205デフォルトの名無しさん2017/11/25(土) 14:31:50.70ID:uI9d/XUE
どっちでもいいけど自分は後ろ。
定義なんてIDEでジャンプできるんだしどうでもいいでしょ。

206デフォルトの名無しさん2017/11/25(土) 22:18:25.21ID:x3Ny6L+y
>定義に飛ぶから
>定義なんてIDEでジャンプできる
なんだよ

(いろいろ眺めつつ)IntelliJ IDEAではF4かな。とう。おお。…さっきのとこ戻るにはどうすればいいんだろう
https://youtrack.jetbrains.com/issue/IDEA-119474
無理か。まあいいや
いや、それにしても固めて書いておく時の一般的なやり方とか見てて迷わない書き方とかあるのかなーと思って

207デフォルトの名無しさん2017/11/25(土) 23:17:25.05ID:O9/4xpc9
>>206
subMethodのKDocをしっかり書いておけば、ジャンプしなくてもマウスオーバーで
何をするメソッドかわかるから後置でいいのではと思う。

208デフォルトの名無しさん2017/11/26(日) 00:38:59.47ID:ReeFqnN/
戻るのはデフォルトだとたぶん Ctrl+Alt+左

定義に飛んでその後戻るのをキーボードで素早くできるようにしとかないと作業が捗らんから、
おれはどんな環境でもAlt+ピリオドとAlt+カンマにカスタマイズする
たまにカスタマイズできない環境もあるが

209デフォルトの名無しさん2017/11/26(日) 01:48:55.48ID:uWNno6dr
>>206
F4ではなくCTRL+マウスクリックじゃない?

210デフォルトの名無しさん2017/11/26(日) 02:41:23.75ID:ReeFqnN/
F4 は "Jump to Source" で、Ctrl+Button1 は "Decraration" だね
両方とも定義へ飛ぶけど、定義を選択して操作したときに "Decraration" のほうは使用箇所へ飛ぶメニューがでるね
おれは間違えて押したときにメニューでるのが面倒なのでキーにカスタマイズして使ってるのは "Jump to Source" の方
使用箇所へ飛びたいときには Find usages を使うし

211デフォルトの名無しさん2017/11/26(日) 12:28:30.17ID:uWNno6dr
あー
F4でjump to sourceし
CMD+F4 (Macの場合)でタブクローズすればいいんじゃない
あと、quick definitionってのもある

212デフォルトの名無しさん2017/11/26(日) 13:15:15.98ID:X819E48M
vimのプラグイン入れてるけどcommand+[ですぐ戻れる

213デフォルトの名無しさん2017/11/26(日) 13:19:18.06ID:uWNno6dr
基本はそれですね、開いたタブを同時に閉じたい場合はcloseかな

214デフォルトの名無しさん2017/11/26(日) 23:28:16.74ID:ReeFqnN/
Jump to SourceとDecrarationの違いを、もうひとつ見つけてしまった
DecrarationはAndroid環境だとリソースIDからレイアウトXMLへ飛んだりもできるのね
Jump to SourceだとリソースIDそのものの値を定義してるファイルに飛んじゃうので意味無い

やっぱデフォルトはDecrarationにしよう・・・

215デフォルトの名無しさん2017/11/27(月) 11:07:32.61ID:nNid/MSo
haskellとか知ってると、まず宣言的コードがあって実装はあとからついてくるコードスタイルでも違和感はない。
トップダウンで見るかボトムアップで見るかの違い。

216デフォルトの名無しさん2017/11/27(月) 14:13:27.80ID:NQTs/ol9
まあ、IDEさまさまなところはあるにはある
IDEがなかったら全然違っていただろうなと思う事象は多い

217デフォルトの名無しさん2017/11/28(火) 17:13:53.17ID:tIAa+Uq8
IDEってEclipse?AndroidStudioのベータ?

218デフォルトの名無しさん2017/11/28(火) 18:39:50.36ID:FPBjC+Ob
JetBrains製以外のIDE使ってる人居るのかな
Vimは居そう

219デフォルトの名無しさん2017/11/28(火) 19:03:29.92ID:nX0y7tBa
>>217
そら第一候補はIntelliJでしょ
≒ Android Studio

220デフォルトの名無しさん2017/11/28(火) 19:50:02.49ID:9tkU9YCi
Eclipseとか原始時代の道具をまだ使ってるやつがいるのか

221デフォルトの名無しさん2017/11/28(火) 20:45:44.51ID:jRr2P5U7
他の言語で使えるからな

222デフォルトの名無しさん2017/11/28(火) 20:54:28.46ID:KE6VY8J8
Linuxなんてずっと原始時代のままだよ。

223デフォルトの名無しさん2017/11/28(火) 20:58:14.84ID:jRr2P5U7
ん?でも Linux でも IntelliJ 使えるよ。

224デフォルトの名無しさん2017/11/28(火) 20:59:52.92ID:KE6VY8J8
まだみんなviだよ。

225デフォルトの名無しさん2017/11/28(火) 21:09:08.70ID:jRr2P5U7
ああ。まあ。確かにviってかvim使う方が多いが、さほど困らんなあ。

226デフォルトの名無しさん2017/11/28(火) 22:43:55.76ID:TzRq1z8j
リモートデスクトップ経由でLinuxのIntelliJ&Android Studio使ってうっひょーって言ってるよ
Emacsのkotlin-modeがぜんぜんイマイチなのはIntelliJ IDEAのせいではないかと思っている

227デフォルトの名無しさん2017/11/29(水) 12:14:21.94ID:UK37Nyfh
IdeaVimプラグインおすすめ

228デフォルトの名無しさん2017/11/29(水) 12:23:23.58ID:HtxXnaax
1.2がリリースですよ?

229デフォルトの名無しさん2017/11/29(水) 12:38:07.31ID:rN1pofYI
>>226
IDEAがあるせいで他がしょぼいというより、Kotlinの歴史の浅さやまだゴミのようなシェアの割にはIDEAの出来が良いんだろ
Kotlin自体がJetBrainsによってIDEAで使うために作った言語なんだから当然

230デフォルトの名無しさん2017/11/29(水) 12:52:25.81ID:3kSmCAWV
>>227
ああ。あれいいね。

231デフォルトの名無しさん2017/11/29(水) 14:26:22.47ID:LyP2QHxX
Kotlinはidea以外の環境を最低一つサポートしろよな。自社でIDEを売ってるからやだとかはやめてくれ。
VisualStudio Codeかatomのどっちかの軽量環境は最低どちらかサポートしろよ。

232デフォルトの名無しさん2017/11/29(水) 15:11:26.12ID:xfNGuvaJ
言語提供側がすべきなのは処理系の提供であって
IDE云々で文句を言うのは筋違い

233デフォルトの名無しさん2017/11/29(水) 15:12:57.24ID:Z0yAcQLL
それは処理系に言う筋合いのものではないが。
最近のエコシステムに慣れすぎるとそう言いたくなるのはわからんでもないが。

234デフォルトの名無しさん2017/11/29(水) 15:22:03.64ID:nwFY0Upv
いや分からん

235デフォルトの名無しさん2017/11/29(水) 15:29:21.72ID:LyP2QHxX
使う側からしてみれば、言語提供側だろうが処理系だろうがどうでもいい。
ユーザーにとって使いやすくしたいとおもってて、他がやらないなら
最終的に言語提供側が提供すればいいだけだし。

236デフォルトの名無しさん2017/11/29(水) 15:30:52.57ID:LyP2QHxX
もちろん、JetBrainsの開発リソースも限られてるが、そんなの使う側からしたら
それもどうでもいい。使いやすければユーザーが増える可能性あるし、使いにくければないだろう。
ただそれだけ。

237デフォルトの名無しさん2017/11/29(水) 15:34:28.47ID:xfNGuvaJ
>>235
1行目からして意味が分からん
処理系が何か分かって書いているのか?

238デフォルトの名無しさん2017/11/29(水) 15:42:48.79ID:LyP2QHxX
>>237
ごめんごめんww
「処理系」に関してはそれは完全にとちくるってた

239デフォルトの名無しさん2017/11/29(水) 15:45:22.41ID:LyP2QHxX
>使う側からしてみれば、言語提供側だろうが処理系だろうがどうでもいい

>使う側からしてみれば、言語提供側だろうが言語提供側以外だろうがどうでもいい
あたりでw

240デフォルトの名無しさん2017/11/29(水) 19:04:08.56ID:UK37Nyfh
時代はジェットブレインなんだよ
MicrosoftのVisualStudioとかいう原始時代の道具は時代遅れ

241デフォルトの名無しさん2017/11/29(水) 19:06:37.15ID:azEm6Mj/
microsoftはjavaとあんまりかんけーし

242デフォルトの名無しさん2017/11/29(水) 19:26:30.80ID:Ut1ew1uc
かんけーし

243デフォルトの名無しさん2017/11/29(水) 19:33:24.71ID:X5HBmKqd
Kotlinで文字列を返すenumを使うときは、
やっぱりJavaと同じようにnameとかtoStringを呼ばないといけませんか?


例えば↓のようなenumがあったときに
enum class Name(name: String) {
Foo("foo")
}

"foo"を使うときはこうすると思います
val name = Name.Foo.name()

しかし、name()が気に入りません。↓のようにはできませんでしょうか
val name = Name.Foo

244デフォルトの名無しさん2017/11/29(水) 21:00:19.88ID:FLL8HsjL
>>240
あほ

245デフォルトの名無しさん2017/11/29(水) 21:05:55.88ID:9RrEnJIt
天才

246デフォルトの名無しさん2017/11/29(水) 21:23:58.21ID:Vh6sORy3
>>240
骨董品UNIXより常に20年先行ってる。

247デフォルトの名無しさん2017/11/29(水) 21:27:39.83ID:Vh6sORy3
>>241
MS製JVMは性能が良すぎてみなそれを使うようになり、Sunに訴えられたから捨てたんだぞ。

248デフォルトの名無しさん2017/11/29(水) 21:53:07.67ID:DIMn1CuR
J#だったからじゃないのか

249デフォルトの名無しさん2017/11/29(水) 21:59:56.13ID:DBojqp7K
>>243
Name.Fooがenumのメンバーを返さないのなら、enumじゃなくてもいいのではない?

250デフォルトの名無しさん2017/11/29(水) 22:09:21.88ID:puYUWHlJ
今やUnix向けの開発者も揃ってVSCodeだもんなあ
開発環境ではMSには敵わないよ
Kotlinは遠からずVSCodeに持ってかれるだろうけど、そうなったらJetBrainsはどうするんだろうね

251デフォルトの名無しさん2017/11/29(水) 22:24:40.91ID:UK37Nyfh
アホすぎ
ジェットブレインの開発環境を使ってないのは
IT後進国の日本だけだぞ

252デフォルトの名無しさん2017/11/29(水) 22:34:19.00ID:X5HBmKqd
>>249
そうかもしれません
Kotlinで文字列の定数をまとめて扱うにはどうするのがベストですか?

253デフォルトの名無しさん2017/11/29(水) 22:41:01.71ID:sTR8OUxJ
>>250
> 今やUnix向けの開発者も揃ってVSCodeだもんなあ
を3回くらい読んで何を指してるのかなんとなくわかった
サーバサイドのスクリプト言語プログラミングもVSCodeで行われることは増えた
EmacsでFTPやらSSHやらして一生懸命書いてた頃とは隔世の感はある
(いや、まあ、ぶっちゃけるなら、Emacs+xx-modeがVSCode+プラグインに置き換わっただけではあるが)
VSCodeはElectronを捨てることができた瞬間に勝利が確定する

254デフォルトの名無しさん2017/11/29(水) 23:18:26.84ID:WrxHm4nG
>>250
資金力ではMSに太刀打ちできるはずのないJetBrainsはGoogleに買収されるべきなのだろうか。
>>241
むしろMSはJ#の時代から.NETさらには最近のXamarinの買収まで一貫してJavaに敵対的だよね。
>>228
めでたい。

255デフォルトの名無しさん2017/11/30(木) 00:12:49.49ID:B6eqzLgy
>>253
捨てたらもうそれVSCodeじゃない気がw

256デフォルトの名無しさん2017/11/30(木) 01:09:11.23ID:Ok7wKsk4
>>252
Javaからの見え方を気にしないのならこれでもいいかな?
object Name { val Foo = "foo" }

257デフォルトの名無しさん2017/11/30(木) 01:58:01.88ID:M/qZYVPC
>>256
なるほど、これでいっぱいval書いたら良さそうですね
ありがとうございました

258デフォルトの名無しさん2017/11/30(木) 03:05:42.40ID:4Ii001tY
>>248
おまえなんにも知らないんだな

259デフォルトの名無しさん2017/12/02(土) 18:09:11.30ID:hkowUbEW
IntelliJをバージョンアップしたらSpekテスト設定のSpec欄ヨコのSearch by Nameが動かなくなった
これまではモジュール適当に指定したら勝手に探して候補出してくれてマウスぽちぽちで済んだのだが、なんかspec欄を自力入力で埋めないといかん
それともこれは普通は使わない所だったのだろうか

260デフォルトの名無しさん2017/12/03(日) 14:17:27.57ID:KOJqmKfW
多分日本で俺だけだろうけど、
Kotlinの公式PDFはフォントのAlignがずれてて
読み始めて1分しない内に直視に耐えられなくなってしまう…。

直そうと頑張ってみたが有料ソフト使うしかないみたいで諦めた。
しかし治ってたら嬉しいなと定期的にダウンロードし直してしまう。

261デフォルトの名無しさん2017/12/03(日) 16:45:59.74ID:CjASQeE2
"sourcefiles"という名の.ktソースファイル名一覧ファイルを作り、

kotlinc @sourcefiles

を走らせると、

error: source file or directory not found: @sourcefiles

が画面に表示されてしまいます。

javac @sourcefiles
scalac @sourcefiles

に相当する機能はkotlincには無いのでしょうか?

262デフォルトの名無しさん2017/12/03(日) 19:45:07.83ID:daSNjmBL
質問の答えは知らないので他の人に任せるけど
ビルドはkotlinc直よりGradle使うことを勧める

263デフォルトの名無しさん2017/12/03(日) 20:02:35.94ID:8YyVv9+M
またそんなこと言って。
あなたはいつも他人任せね。
いいかげん私も待ちくたびれちゃうわ。

264デフォルトの名無しさん2017/12/03(日) 20:37:07.64ID:1V67aEN5
なんで女言葉なの?

265デフォルトの名無しさん2017/12/03(日) 22:21:28.14ID:8rz+kd7O
だって女と思わせた方が答えが出やすいんですもの

266デフォルトの名無しさん2017/12/03(日) 23:10:58.68ID:D7S9aojy
>>262
正しい
可能ならIDE使って欲しいけどね
いまはgradle安定

267デフォルトの名無しさん2017/12/03(日) 23:18:52.67ID:CdnEE9AY
Gradle, Vagrant は、yaml, XML, JSON のような、単なる設定ファイルではなく、

それ自体が、Groovy, Ruby の、クロージャ・ブロックで囲まれた、
スコープを持つソースコードであるから、変数宣言や処理も書ける

268デフォルトの名無しさん2017/12/04(月) 00:39:28.22ID:1VMjnc7g
>>265
逆におっさんにしかみえん

269デフォルトの名無しさん2017/12/04(月) 18:53:03.40ID:wtgBoDUa
>>265
キモい
>>263
たとえ女だとしてもキモい。やるならもっと自然な文体にしてくれww

270デフォルトの名無しさん2017/12/04(月) 18:54:32.14ID:nKJqxEpH
うふ

271デフォルトの名無しさん2017/12/04(月) 20:08:06.27ID:4Cie7nT5
(´・ω・`)うふふ

272デフォルトの名無しさん2017/12/04(月) 20:18:46.16ID:s6dQomLc
リアルの女と接点がなく、妄想で女はこうだろうと決めて話してるのがわかる
昭和生まれのジジイですわ

273デフォルトの名無しさん2017/12/04(月) 20:51:56.16ID:59vQQL00
謎のマジレスマンが居ますね

274デフォルトの名無しさん2017/12/04(月) 22:06:40.20ID:dW7+efaY
マジレズマン

275デフォルトの名無しさん2017/12/04(月) 22:11:31.07ID:GD7rAYrg
マジレスマンつまらないわね

276デフォルトの名無しさん2017/12/05(火) 00:40:05.91ID:AwrHp2sF
(´・ω・`)ほんとよね

277デフォルトの名無しさん2017/12/05(火) 00:49:05.55ID:6UYDf8NM
Kotlin Advent Calendar がAndroid以外の話題多めだな
ここでナチュラルにIntellijIDEA の話題だしちゃったけど
Android以外の人も IntellijIDEA を買って使ってるのかねえ?

278デフォルトの名無しさん2017/12/05(火) 01:18:19.27ID:LDxS5CId
12/18にこの本が出るようだ。Amazonには本の表紙画像がまだ出ていない。

Androidアプリ開発のためのKotlin実践プログラミング
http://amzn.asia/4GO28m2

279デフォルトの名無しさん2017/12/05(火) 07:55:54.23ID:y4Wcjyaa
KotlinはAndroidが対応したってだけでそのためだけに使う人は少数派やろ

280デフォルトの名無しさん2017/12/05(火) 09:05:47.31ID:lXQHSkZJ
いやあ、しかし楽にはなりそうだからねえ、流行ると思うけどねえ。

281デフォルトの名無しさん2017/12/05(火) 09:10:49.28ID:AdXR2ViJ
なんだ秀和システムか

282デフォルトの名無しさん2017/12/05(火) 09:18:48.22ID:jRPOQw5f
なぁーんだ

283デフォルトの名無しさん2017/12/05(火) 09:23:34.28ID:LGaiibyR
>>260
Adobe readerじゃダメなの?

284デフォルトの名無しさん2017/12/10(日) 18:15:48.13ID:kwrbJZOe

285デフォルトの名無しさん2017/12/10(日) 21:26:30.38ID:x9bbNSCq
cmで始まってdpで終わってるからどこかのレビューページから飛んだURLだと思うんだが
なにもしないとcm_cr_dpなんだけどな
cpが入ってるってことは「この商品を見た後に買っている」を1回表示してるのかもしれない

286デフォルトの名無しさん2017/12/10(日) 21:39:59.60ID:J3Wk9KR3
cm_sw_ ... _dp はシェア用URLの生成形式だね
ツイッター用ならcl_twで超わかりやすいんだがr_cp_epはなんだろう

287デフォルトの名無しさん2017/12/11(月) 06:07:16.82ID:Vu+apVrY
>>284
それはわからんが>>278のリンクはAmazonで「シェアする」のリンク使って出てきたURLだよ。誰がやっても同じになると思う。

288デフォルトの名無しさん2017/12/11(月) 23:34:54.18ID:5wm6MhH6
lateinit var value: Int
って書いたら'lateinit' modifier is not allowed on properties of primitive typesのエラーになるんですが、
どう書き直したらいいんでしょうか

var value: Int? = null
って書いて、
if (value == null) {
  value = initValue()
}
ってするしかないんでしょうか。

289デフォルトの名無しさん2017/12/11(月) 23:52:46.83ID:1muH/1X2
プリミティブ型にlateinitは必要ないからつけられない

290デフォルトの名無しさん2017/12/11(月) 23:53:52.52ID:jDa4LF1V
>>288
試してないけど
var var value by { var value: Int }
ではだめ?

291デフォルトの名無しさん2017/12/11(月) 23:55:33.20ID:Q0kTyulb
で、一番いい入門書は?

292デフォルトの名無しさん2017/12/11(月) 23:55:50.41ID:jDa4LF1V
>>290
ペーストに失敗したorz
var value by { initValue() }

293デフォルトの名無しさん2017/12/11(月) 23:58:47.24ID:jDa4LF1V
>>291
自分はスタートブックを推す。
Javaを知っていることを前提としない入門書の存在を自分は知らない。

294デフォルトの名無しさん2017/12/12(火) 00:03:08.61ID:UCmbxn8n
>>292
慌てて修正したらlazy落としていたorz orz
var value by lazy { initValue() }
連投申し訳ない。これで違っていたら目も当てられんが、それもすみません。と誤っておきます。

295デフォルトの名無しさん2017/12/12(火) 00:09:53.79ID:LMcO3gTk
>>289
答えはこれです

296デフォルトの名無しさん2017/12/12(火) 00:45:23.57ID:GdvZGdbs
>>291
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

一番良いもクソも無い。
この1冊しか出ていないだろ

297デフォルトの名無しさん2017/12/12(火) 01:14:31.08ID:YJZ1oHv9

298デフォルトの名無しさん2017/12/12(火) 01:17:20.30ID:yvEMt4M/
ありがとうこの世界の片隅にうちを見つけてくれて

299デフォルトの名無しさん2017/12/12(火) 04:02:58.46ID:0dOBEVV8
アスペは質疑応答解説に使えねーなーもう

>>288
なぜlateinitを使うかというと「初期値というものがうまく定義できなくてうまく初期化できないから」だ
※実際にはjavaでprimitive typeであるものはnull代入できないからという理屈なのだが知らなくていい
Intとかは0とか-1とかで初期化できるだろ、最初にvarで0や-1入れとけ
Nullableもnullで初期化できるからlateinit使わずにただのvarでnull入れとけ

で、どーしても遅延初期化を使いたいなら
var value: Int by Delegates.notNull<Int>()
とか書くと形式上遅延初期化になる。むろん二度手間だが、遅延初期化という目的は一応達成される
こんなごっついことせずに素直に0とか入れておいたほうがいいんじゃねーかなと思った感覚は正しい。0入れとけ0

あとはちらっと出てたけどby lazyで
val value: Int by lazy { initValue() }
と書くことでも一応達成される。こっちだとvalで書けるので好まれることが多いみたいだね

300デフォルトの名無しさん2017/12/12(火) 06:12:22.97ID:GdvZGdbs
長澤太郎の本に書いてあるけど、

lateinit は、DI(Dipendency Injection)か、ユニットテスト時か、

フレームワークが自動的に初期化すると、不都合な場合に使う

301デフォルトの名無しさん2017/12/13(水) 04:15:38.26ID:v+2UW/cD
オワコトリン

302デフォルトの名無しさん2017/12/13(水) 09:19:22.05ID:XdGkiBLZ
美少女仮面ポワトリン

303デフォルトの名無しさん2017/12/13(水) 23:27:28.97ID:UM/lzC7r
シュシュトリアン

304デフォルトの名無しさん2017/12/13(水) 23:37:55.76ID:Cx01t7px
技術の話ができないアスペルガーがまた暴れてるのか

305デフォルトの名無しさん2017/12/14(木) 03:21:54.60ID:fsO62Lbi
正直、ダジャレを理解できるのは都会人だけ。

306デフォルトの名無しさん2017/12/14(木) 04:38:45.38ID:a/3Oigfw
2017年プログラミング言語アワード候補はCとKotlin
https://news.mynavi.jp/article/20171212-554317/

307デフォルトの名無しさん2017/12/14(木) 06:24:48.79ID:Ba6lMueX
>>306
でもCの方が有力って書いてあるね。Cは何で増えんたんだろう。

308デフォルトの名無しさん2017/12/14(木) 06:50:37.29ID:Zv9+113v
https://ideone.com/Pfncvl

これなんでデフォルト値が使用されないんですか?

309デフォルトの名無しさん2017/12/14(木) 07:40:22.43ID:v/ZRkoO2
>>308
デフォルト値はコンパイラが定義参照してるだけで、
型にもインスタンスにも持って無いから変数に入れた時点で使えないよ

fun f1(n: Int=1) { print(n) }
val f2 = ::f1
f1() //OK
f2() //コンパイルエラー

310デフォルトの名無しさん2017/12/14(木) 07:51:51.32ID:Zv9+113v
>>309
理解しました、ありがとう

311デフォルトの名無しさん2017/12/14(木) 08:06:24.80ID:oXimKAa7
Cが必要なレベルの仕事の割合自体は
減ってるはずなのに…謎だ

312デフォルトの名無しさん2017/12/14(木) 09:49:51.95ID:DkrsR4qN
Cでググってもノイズが拾われてくる率が高い
他のCと間違われてるんじゃないのか

313デフォルトの名無しさん2017/12/14(木) 10:12:12.59ID:rSG8ExGM
Cの半分はC++という時代があったからな
Cの半分はC#とC++ということでも不思議はない
C sharpならC#確定なのだが

314デフォルトの名無しさん2017/12/14(木) 10:35:46.55ID:LuQDs4YA
C++はcocos2dやUnrealでのゲーム開発とかあるけどCはなんだろうな
廃れることはあり得ないけど

315デフォルトの名無しさん2017/12/14(木) 11:38:25.42ID:DkrsR4qN
機械学習とかロボティクスとか自動運転とかがメディアで取り上げられるようになって学生にプログラミングへの関心がいっそう高まって教育現場での採用が増えてるのかもしれないな
就職にも有利なスキルだろうし
もともと人気の高い言語だし本格的なプログラミングの登竜門的な立ち位置の言語でもあるし

316デフォルトの名無しさん2017/12/14(木) 12:12:41.91ID:oEBjPr7B
IoTかな

317デフォルトの名無しさん2017/12/14(木) 21:38:11.42ID:5ZTCzvqn
(IoT)

こうすると顔文字になるよね

318デフォルトの名無しさん2017/12/14(木) 22:23:38.53ID:55Q0ymnI
検索エンジンで+"C programming" で検索した結果参照してるだけだからな
単にデータとしてうんこオブうんこだ
githubやstackoverflow読んでるIEEEのランキングのほうがなんぼかマシ

319デフォルトの名無しさん2017/12/19(火) 10:24:09.99ID:f5KBk+Xr
Javaの無名スコープを表す構文が無いことから調べていってみたけど
色々と良く設計されてると感心した

構文が無い代わりにrun関数がある
ラムダ生成コストやブロック内でのreturnが気になったけど
inline関数に渡すラムダはそれごとインライン化されるため
コストも無くreturnはちゃんと呼び出し元関数から抜ける

そうするとinlineでない関数にラムダを渡す場合のreturnとで
区別出来なくて危険かと思ったけど
inlineでないラムダではラベル無しreturnが禁止されていた

returnにラベル必須だと面倒ではと思ったけど
最後のステートメントが戻り値になる仕様だからむしろ楽だった

320デフォルトの名無しさん2017/12/19(火) 10:25:19.69ID:f5KBk+Xr
■Java
 int f(){
  {
   String a = "a";
   if(a.length() < 10){return 1;} // fから抜ける
  }
  return 2; //ここには来ない
 }

■Kotlin
 fun f(): Int {
  run {
   val a = "a"
   if(a.length < 10){ return 1 } // runでなくfから抜ける
  }
  return 2 //ここには来ない
 }

321デフォルトの名無しさん2017/12/19(火) 10:28:08.70ID:f5KBk+Xr
fun fcall(f1: () -> Int): Int = f1()

fun f(){
  val a = fcall {
    val a = "a"
    if(a.length < 10){ return@fcall 1 } //ラベル付き
    else { 2 } //returnキーワード無し
  }
}

322デフォルトの名無しさん2017/12/20(水) 02:29:53.61ID:Y+OkZrNr
マップの値を条件判定に使いたいんだけど、Nullableをどう扱って良いのかわからない...

val map = mapOf<String,Boolean>("hoge" to false,"fuge" to true,"piyo" to false)

// ↓こんな感じで書きたいが、Nullableなので怒られる
if (map["hoge"]){/*処理*/}

//---------- 解決策 ----------
// @強制的に!!でNotnullにする。でもなんか気持ち悪い。
if (map["hoge"]!!){/*処理*/}
// Aエルビス演算子を使う。しかし、IDEからBの書き方を提案される
if (map["hoge"] ?: false){/*処理*/}
// B凄いバカっぽい。ていうか、これOKで一番上ダメなんだ...
if (map["hoge"] == true){/*処理*/}

なんか、どれもしっくりこない。どうするのが正解なの....
誰か教えて!お願いします!

323デフォルトの名無しさん2017/12/20(水) 03:07:01.09ID:vJEKLhBA
if (map.getOrDefault("hoge", false)) { ... } とか。
うーん。なんか変だね。mapOf では nullable かどうか判定しているのに get 時には nullable かどうかの情報が抜け落ちているような。

324デフォルトの名無しさん2017/12/20(水) 03:12:58.65ID:O14cUYGW
>>322
1はmap["hage"]とか存在しないキー指定すると落ちるだろ
2はエルビスで落ちないようになってて
3が落ちないのは、
ここ https://kotlinlang.org/docs/reference/equality.html
Structural equality あたりに書いてある仕組みのせいかな

どうmapを使えばいいのかは知らん

325デフォルトの名無しさん2017/12/20(水) 03:15:09.91ID:O14cUYGW
知らんが、kotlinみたいな言語だとキーが無いときの処理を適当にごまかすわかにはいかんだろ

326デフォルトの名無しさん2017/12/20(水) 03:31:33.35ID:nn3v7K50
>強制的に!!でNotnullにする。でもなんか気持ち悪い。
>if (map["hoge"]!!){/*処理*/}

そもそも、map は、そのキーが存在しない場合もあるのが、当たり前だろ。
そのキーが存在するかどうかを、チェックするメソッドもある

君が仕様・設計を考えるんだ。
1. そのキーが存在した場合の処理と、
2. 存在しなかった場合の処理

初心者は、強制変換の使い方をわかっていないのだから、!! を使うな

327デフォルトの名無しさん2017/12/20(水) 03:56:24.26ID:MahKH8pr
>>325
+1
「知らないキーでmapに問い合わせたときの結果はnullになることがある」問題をコード的になんとかする必要がどうしてもある
これは本当にどうしようもないので、どっかでKotlin(実際にはIDE)に知らせる面倒を許容するしかない
ポイントとしては面倒でも一旦変数にぶち込むこと。これですべてうまくいく

// checkNotNullの書き方だけ覚えればいいので最近全部これで書いてる
val mapValue: Boolean = checkNotNull(map["hoge"]){ "map does not have key:<hoge>" }
if (mapValue) { doSomething() }

// またletをそんな用途に使って
map["hoge"]?.let{ doSomething() }

// 考え方がJavaっぽい(偏見)変数に入れないとnullチェックした履歴保持できないよ
val mapValue = map["hoge"]
if (mapValue!= null && mapValue) { doSomething() }

// ほら、Kotlinの人はなんでもかんでもwhenで書きたがるから
when(map["hoge"]){
null -> println("ぬるぽ") // なくても動く
true -> doSomethingTrue()
false -> doSomethingFalse()
}

328デフォルトの名無しさん2017/12/20(水) 04:24:12.03ID:MahKH8pr
寝起きで書いたら!=がくっついた
if (mapValue != null && mapValue) { doSomething() }
まだ頭寝てるので動作チェックしてないから細かいとこは適当に直したりしてくれ

>>326
安易に nullableValue?.let{ ... } を使って欲しくないのも似たような感じ
今回で言うと現在のmapに"hoge"が登録されていることの保証はどうするんだろうと思う
ぬるぽ出ると追うのもしんどいわけでさ
1行で済むし動作にも影響らしい影響はないんだから脳死状態で checkNotNull(...){ "やべえhoge登録されてねえ" } とか書いとくのおすすめしたいわ

329デフォルトの名無しさん2017/12/20(水) 07:46:04.79ID:nn3v7K50
map, hash は、集合の概念だから、
集合A に属するか属さないか、のどちらかの状態をとる

1. そのキーが集合A にあれば、値が取得できる
2. そのキーが集合A になければ、値が取得できない

1, 2 で、君がどういう処理をするか、仕様・設計を決めるのは君!

330デフォルトの名無しさん2017/12/20(水) 07:49:29.92ID:f5FKKl5l
>>322
Bでいい
一番上とは意味論的に異なる

331デフォルトの名無しさん2017/12/20(水) 12:00:57.83ID:f5FKKl5l
Bがバカっぽいと感じるのは
真偽値 == 真偽値 だと勘違いしているから

実際には2つのNullableTypeの等値比較

332デフォルトの名無しさん2017/12/20(水) 13:02:21.99ID:G3r13eVw
if(map.getValue("hoge")){/* 処理 */}
これで基本的にキーが存在しないと例外に行くしシンプルだね

333デフォルトの名無しさん2017/12/20(水) 13:25:19.85ID:g9yiCifS
直感的にはおかしく感じるな。(最初結果見た時は驚いたw)
https://paiza.io/projects/zLCe3AYlPO9luQp7z2NaIw
しかしクラスの参照同士の比較なのでこれで良い。

334デフォルトの名無しさん2017/12/20(水) 13:51:27.51ID:cc5ffQEu
322です。
こんな速くレスいっぱい貰えるとは....皆ありがとう!
基本的にNullチェックは必須なんだね

>>331
そういうことか!あくまで等値比較なのかー

>>327
>感が方がJavaっぽい
これやったんだけど、あんまりキレイな感じしないし、何よりJavaっぽくて....

>>332
そのメソッド知らなかった。使ってみます。

335デフォルトの名無しさん2017/12/20(水) 13:54:26.10ID:f5FKKl5l
>>333
おかしく感じたのはprintln("True")と書いたからじゃないの
not False と True は同義でないよ

https://paiza.io/projects/1WgctVAqXu8SWmlIYtx4YA

336デフォルトの名無しさん2017/12/20(水) 13:58:37.66ID:QHJO7UtC
おまえがそう思うのならそうなのだろう。おまえの中ではな。

337デフォルトの名無しさん2017/12/20(水) 15:20:49.03ID:g9yiCifS
>>335
not false が true でない?
じゃあなに?

338デフォルトの名無しさん2017/12/20(水) 16:11:14.74ID:skPFcOgX
>>337
このコードだとFalse以外のAnyでは

339デフォルトの名無しさん2017/12/20(水) 16:17:54.73ID:f5FKKl5l
>>337
>>333>>335のコードが示すように
Nullable(null)もStringも真偽値ではないため
falseとtrueどちらにも等値でない

falseでない真偽値はtrueだが
falseでない値はtrueとは限らない

「True, null」だから違和感が有って
「not false, null」なら無かったのでは

340デフォルトの名無しさん2017/12/20(水) 16:28:57.34ID:f5FKKl5l
>>333
リンク先のコード消えてるよ

同じ接続元・同じURLで開くと変更モードになるようだから
「新規コード」を押してから扱わないといけない

341デフォルトの名無しさん2017/12/20(水) 18:13:04.50ID:oPcnMRgu
>>340
ごめん。うっかりしていた。

で、書き直してグレードアップしたよ。
https://paiza.io/projects/KX6WsUduUz1OoV0sEOwyTw

342デフォルトの名無しさん2017/12/20(水) 18:27:37.40ID:AIjICjtT
糞みてえな言語だな

343デフォルトの名無しさん2017/12/20(水) 18:40:45.87ID:GLW9SuF+
Xamarin程の糞はない

344デフォルトの名無しさん2017/12/20(水) 21:01:27.13ID:SZt84l7a
糞だからこそ良い

345デフォルトの名無しさん2017/12/25(月) 05:24:40.47ID:CQjgWB2v
やはりJavaを超えられなかったか。

346デフォルトの名無しさん2017/12/25(月) 09:22:20.35ID:pKfklu/G
    \   ∩─ー、    ====
      \/ ● 、_ `ヽ   ======
      / \( ●  ● |つ
      |   X_入__ノ   ミ   そんな餌で俺様が釣られクマ――
       、 (_/   ノ /⌒l
       /\___ノ゙_/  /  =====
       〈         __ノ  ====
       \ \_    \
        \___)     \   ======   (´⌒
           \   ___ \__  (´⌒;;(´⌒;;
             \___)___)(´;;⌒  (´⌒;;  ズザザザ

347デフォルトの名無しさん2017/12/25(月) 14:41:12.11ID:eNXAkvu4
>>343
ちょまど神への信仰が不足しているか背教者ですね

348デフォルトの名無しさん2017/12/28(木) 18:16:09.77ID:xKYb+xvk
>>278の本は何故か新品よりも高い中古がもう出ているw
(値段のタイプミスか?)

349デフォルトの名無しさん2017/12/28(木) 20:08:10.60ID:g7xH4Ri4
購入者の確認不足や品切れ時にたまたま買われることを狙った有名な詐欺だよ

350デフォルトの名無しさん2017/12/29(金) 01:04:43.78ID:05sEmydS
>>347
確かに可愛いがムネ大き過ぎ。
D,EかせめてFカップなら信者になってた。

351デフォルトの名無しさん2017/12/29(金) 10:11:40.46ID:RRbpiG2U
>>350
盛ってるから問題ないで

352デフォルトの名無しさん2018/01/10(水) 07:01:15.70ID:IyW1fpec
classのdelegateってinterfaceしか出来ないみたいだけど、
classやabstractのインスタンスでdelegateできない理由をご存知の方いらっしゃいますでしょうか。

可: class SubClass(instance: Interface) : Interface by instance
不可: class SubClass(instance: SuperClass) : SuperClass by instance

353デフォルトの名無しさん2018/01/10(水) 07:32:55.52ID:IyW1fpec
もちろんSuperClassはopen指定してあります。
>>352 に答えられる人にそんな野暮なこと言う方はいないと思いますが念のため。

In Actionには「インターフェースを実装しいているなら〜」とさらっと書いていて
クラスでdelegateできない理由は触れられていませんでした。

354デフォルトの名無しさん2018/01/10(水) 21:04:38.05ID:CUBllmbw
androidにdelegateなんて言葉はない

355デフォルトの名無しさん2018/01/10(水) 22:52:38.58ID:68cAMYmT
>>352-353
例えばこんな感じのKotlinコードをJavaへ変換してみればわかる
interface Interface1 { ... }
interface Interface2 { ... }
class SubClass (impl1:Interface1, impl2:Interface2) : Interface1 by impl1, Interface2 by impl2

356デフォルトの名無しさん2018/01/11(木) 06:56:39.64ID:irxu1jkK
>>355 ありがとうございます。
interface Interface1 { ... } が
open class Interface1 { ... } であったとしても、
class SubClass extends Interface1 implements Interface2
になるので、支障ないと思うのですが、どこか勘違いしていますでしょうか。

357デフォルトの名無しさん2018/01/11(木) 07:43:33.12ID:rggai+wG
>>356
ごめん多重継承は関係無かったね
問題になるのはコンストラクタかな
class SubClass extends SuperClass というJavaコードに相当するものに変換されるからには
SuperClass のコンストラクタを呼ぶ必要があるけど、
でも SuperClass by instance によってインスタンスが別に渡されたらSuperClassの実体が二つになってしまう

358デフォルトの名無しさん2018/01/11(木) 10:00:24.62ID:J2rrbjux
>>352
インターフェースでないと移譲が保証出来ないからでは

インターフェースと違ってクラスの場合はそれが持つオーバーライド可能なメンバ全て移譲しても移譲になるとは限らない
例えば、あるライブラリがInterface, SuperClass, それらを引数に取る関数を提供しているとする
Interfaceを受け取るならInterfaceとして扱うべき
(内部の実装クラスへダウンキャスト出来ること等を前提とすべきでない)で、
SuperClassを受け取る場合も同様だが
こちらはprivateメンバへのアクセスなども含まれていてそれは移譲出来ない

359デフォルトの名無しさん2018/01/12(金) 02:36:59.71ID:EycqiUrc
>>352
abstractやclassじゃextendsになっちゃうじゃん
したいのはimplementsじゃん
だからOnly interfaces can be delegated toって言われちゃうんだよ

360デフォルトの名無しさん2018/01/12(金) 17:51:43.69ID:to65cpCS
>>357の言いたかったこととは違うかもしれませんが、以下のように理解しました。

KotlinのdelegateはIn ActionではCollectionを引き合いに出しているが、
実際には、実装したクラスのコンストラクタがprivateで、
ヘルパークラスのファクトリメソッドを通じてしかインスタンスを生成できない
ようなケースで力を発揮する。

コンストラクタがpublicでopenなclassやabstractの場合、素直に継承することを想定している。
In Actionの例も(共変とか反変とかを抜きにすれば)実はArrayListの継承で解決できる。

逆に、classでのdelegateを認めるとfinalなclassも継承できてしまい、
これを禁止するために規則を増やすことになる。

>>359
書き込んだ動機としては、多数のプロパティを持ったクラスを継承したい時に、
class SuperClass(val comp1: Comp1, val com2: Comp2, ...)
class SubClass(instance: SuperClass) : SuperClass(instance.comp1, instance.comp2,...)
とすると、かなり宣言が不格好になるので、
class SubClass(instance: SuperClass) : SuperClass by instance
としたかったのです。

>>358
SuperClass内のSuperClassを引数に取る関数は、
SubClassにおいても引数としてSuperClassを渡せば正しく動作するので、
private(あるいはprotected)メンバへのアクセスがなくても、
実装可能でないかと思います。

ご指摘で理解できていない点があればご指摘いただければ幸いです。

皆様ありがとうございました。

361デフォルトの名無しさん2018/01/12(金) 19:14:43.07ID:EycqiUrc
interface InterfaceClazz{
val comp1:Any
var comp2:Any
fun method1()
}
class SuperClazz(override val comp1: Any, override var comp2: Any) :InterfaceClazz {
override fun method1() {
println("SuperClazz.method1 comp1:$comp1 comp2:$comp2")
}
}

class SubClazz(instance:SuperClazz):InterfaceClazz by instance
こういうのじゃだめなの?

362デフォルトの名無しさん2018/01/12(金) 22:32:24.26ID:to65cpCS
>>361
自分が作ったクラスの場合ならそうできることは考えましたが、
他人がinterfaceを定義せずに作ったクラスでやりたい場合どうすればいいんだろうという疑問でした。

363デフォルトの名無しさん2018/01/13(土) 08:10:52.44ID:9rLeDqe4
Java, C# が、interface を作った理由は、
C++ のclass の、ひし形の形になる、ダイヤモンド継承を嫌ったから

ほとんどの言語は、単一継承 + interface。
継承チェーンに、同じクラスが現れると困る

親クラス ← 子クラス1・2 ← 孫クラス

孫クラスが、子クラス1・2を多重継承すると、
両方の子クラス部分に、親クラスのメンバ変数を含んでしまう

孫クラスからすると、どちらの子クラス経由で、
親クラスのメンバ変数にアクセスすべきか、ややこしい

だから多重継承用に、メンバ変数を持たず、メソッドだけを持つ、interface が作られた

is-a・class・継承よりも、has-a・interface・委譲の方が、柔軟性があって好まれる

364デフォルトの名無しさん2018/01/13(土) 10:05:52.35ID:RtHYbtnJ
複数のinterfaceでメソッド名が被ってたらどうするの?

365デフォルトの名無しさん2018/01/13(土) 10:11:05.35ID:i594883x
そんな事態見たことないけど確かにどうなるんだ?

366デフォルトの名無しさん2018/01/13(土) 10:23:17.39ID:Rp7yFlms
パッケージ名とinterface名で指定するんじゃね

367デフォルトの名無しさん2018/01/13(土) 11:09:24.85ID:rLmRRKlD
>>364
実装はサブクラス側でやるんだからどうもなんねーだろ

368デフォルトの名無しさん2018/01/13(土) 12:17:34.58ID:7idPsqBM
delegataion 使った >>355 みたいなので Interface1 と Interface2 に同じメソッドが定義されている場合にはエラーになるけど、
SubClass で override しろって IDE が言ってくるので、それすればエラーは消える
delegatation 使わないのなら >>367 が言うようにサブクラスで実装するんだから関係無いね

369デフォルトの名無しさん2018/01/13(土) 12:18:29.46ID:7idPsqBM
Delegataion ってなんだ・・・Delegation ね

370デフォルトの名無しさん2018/01/18(木) 20:57:21.62ID:uaAP/nEg
coroutine builderの例えばasyncの定義を見ると、
fun <T> async(
context: CoroutineContext = DefaultDispatcher,
start: CoroutineStart = CoroutineStart.DEFAULT,
parent: Job? = null,
block: suspend CoroutineScope.() -> T
): Deferred<T> (source)
ってなってんですが、blockパラメータの型が関数型になっているのですが、
型の前にCoroutieScope.とかついてるのですが、これはなんなんでしょうか??

371デフォルトの名無しさん2018/01/18(木) 22:13:56.56ID:h6w5lyYQ
>>370
block内でのthisがその型のインスタンスになる

https://ideone.com/KsS26N

372デフォルトの名無しさん2018/01/18(木) 22:42:32.43ID:uaAP/nEg
>>371
ありがとうございます。

うーん。ややこしい。何のためにこんなのが必要なんだ・・
呼び出される関数の方でもインスタンス(val a = A("aa"))を作って
関数を呼び出さないといけないってことですよね。

373デフォルトの名無しさん2018/01/18(木) 23:47:50.82ID:h6w5lyYQ

374デフォルトの名無しさん2018/01/22(月) 22:47:52.97ID:FT3BkIDm
delegateってパフォーマンス悪かったりします?
>>361のような方法を試したら、目に見えて遅くなりました。
もっとも他にも色々いじった後だから、他が原因の可能性もありますが....。

375デフォルトの名無しさん2018/01/23(火) 18:27:08.00ID:himcush7
仕組み的に体感出来る程の劣化は起きないと思う

376デフォルトの名無しさん2018/01/23(火) 19:46:07.93ID:leMx6cGU
エルビス式のエルビスって何ですか?プレスリーしか出てこないんですけど

377デフォルトの名無しさん2018/01/23(火) 19:47:46.14ID:leMx6cGU
と思ってググったら本当にプレスリー由来だったのね、、

378デフォルトの名無しさん2018/01/23(火) 23:26:39.49ID:9+CEbA1m
>>375
調べてみたら、delegateよりも前に速度低下はあったようでした。ありがとうございました。

379デフォルトの名無しさん2018/01/24(水) 07:00:29.98ID:YOaqJu3C
?: これのどこがプレスリーなんだよ?と思った時の脳内に浮かんでいたのはサタデーナイトフィーバーの人だったのは俺だけだろうな

380デフォルトの名無しさん2018/01/24(水) 09:46:01.11ID:yQK5cwW2
?:)

381デフォルトの名無しさん2018/01/24(水) 12:18:03.47ID:wZvPOi0Q
?が5

382デフォルトの名無しさん2018/01/31(水) 15:59:06.95ID:4N9XMFe/
>>161だけど
Javaのリリースサイクルが6か月ごとになったので2018/3/20リリース予定
http://openjdk.java.net/projects/jdk/10/
ローカル変数の型推論きたー

後はGoogleさん早めにAndroidで使えるように。

383デフォルトの名無しさん2018/01/31(水) 16:05:14.51ID:4N9XMFe/
後はkotlinを使ってみて自分的にうらやましのは
・Null safety
・1ファイルに複数のクラス書ける
・コルーチン
ぐらいかな・・

384デフォルトの名無しさん2018/01/31(水) 18:17:51.93ID:hwMh3j1W
俺は
・val
・最後の引数のラムダを括弧の外に書けること
・「==」でnull考慮込みのequals()呼び出しにしてくれること

385デフォルトの名無しさん2018/01/31(水) 18:53:28.83ID:F5No3k5g
とにかくJavaと同じことをするのに記述量が圧倒的に少なくて済むのが良いわ。

一つ一つはそれこそ数行程度の違いになるけど、チリが積もって最終的にかなり短くなって可読性が段違い

386デフォルトの名無しさん2018/01/31(水) 20:20:09.40ID:CrWRl7VR
Sから始まる某言語と違って何故か読みやすい

387デフォルトの名無しさん2018/01/31(水) 20:58:06.42ID:UVbJv7LF
Smalltalkの悪口はやめろ

388デフォルトの名無しさん2018/01/31(水) 21:14:03.77ID:AX72W1bb
俺のS言語が・・・

389デフォルトの名無しさん2018/01/31(水) 23:02:47.38ID:Mw3vWzBx
SQL

390デフォルトの名無しさん2018/02/01(木) 07:20:22.31ID:d+x91pir
Objective-Cを経験すれば大抵の言語は涙が出るほど読みやすい

391デフォルトの名無しさん2018/02/01(木) 07:42:19.46ID:XxNDw1fe
Schemeの悪口?

392デフォルトの名無しさん2018/02/01(木) 08:58:05.91ID:0qxcm1IL
perl「せやな」

393デフォルトの名無しさん2018/02/01(木) 23:11:28.90ID:PazMLs1n
>>390
現役言語じゃないからもう新たに触ることないしなあ

394デフォルトの名無しさん2018/02/01(木) 23:15:10.58ID:oMkeAueE
そういえば Objective-C ってMacとかiOSで使われてるんだっけ?

395デフォルトの名無しさん2018/02/01(木) 23:28:46.21ID:xVAl4gBi
MacとかiOSでしか使われていない

396デフォルトの名無しさん2018/02/02(金) 01:47:08.99ID:sNIUDAKb
SwiftはiOSでしか使われていない

397デフォルトの名無しさん2018/02/02(金) 05:20:56.67ID:s78i1eOK
いくらいい言語でも林檎様の傘下だと何されるかわからんからな
使えねーわ

398デフォルトの名無しさん2018/02/02(金) 07:12:32.55ID:gnaQFUD2
swiftってオープンソースじゃなかったっけ?

399デフォルトの名無しさん2018/02/02(金) 08:41:42.94ID:V6ypn24z
Swiftはオープンソース化以降は言語開発もコミュニティベースで行われてる
頑張ってはいるようだけどいくつかの問題でObjCに戻る人も割と居るし
クロスプラットフォーム系との競合もあって人気は減少傾向

400デフォルトの名無しさん2018/02/02(金) 08:43:29.60ID:2JRgrNpV
Kotlinの方がよくできてる

401デフォルトの名無しさん2018/02/02(金) 09:20:26.67ID:V6ypn24z
Kotlinでのクロスプラットフォームは Kotlin/Native(まだベータ) と Multi-OS Engine があるけど
UI部分が固有になるから React NativeのKotlin版のような
UIブリッジするライブラリが生まれてほしい
WebViewも手だけど

402デフォルトの名無しさん2018/02/02(金) 09:22:41.58ID:V6ypn24z
JavaScriptエンジンを挟みたくない

403デフォルトの名無しさん2018/02/02(金) 12:06:11.99ID:jTuMDwxk
C#でええやん

404デフォルトの名無しさん2018/02/02(金) 12:35:18.11ID:V6ypn24z
コミュニティの条件に収まらなくてサブスクリプションが要る都合でそっちは二の足
言語自体は割と好きだけど

405デフォルトの名無しさん2018/02/02(金) 19:53:43.35ID:YRu1rdgq
何年か前はiOSとandroidのクロスプラットフォーム開発はいまいちすぎて結局それぞれネイティブて開発したけど、今はどうなんだろうな
最近スマホアプリさわらんからよくわからん

406デフォルトの名無しさん2018/02/02(金) 21:37:32.04ID:00GaqTOE
あ、そうだ。iOSやMacの開発にKotlin使えれば全て丸く収まるじゃねえか。
MacだけならJREあるから既に動くのかな?

407デフォルトの名無しさん2018/02/02(金) 21:43:50.82ID:zvuXw/YQ
Android studioはMac版もあるし当然Kotlinも使える
ただ、iPhoneアプリは作れねぇ

408デフォルトの名無しさん2018/02/02(金) 22:32:37.72ID:iI1eaKOA
>>406
MacとiOSはMacが無いとコンパイルすら出来ないって糞みたいな仕様が一番のネックだからな

409デフォルトの名無しさん2018/02/02(金) 22:38:07.24ID:zvuXw/YQ
Windowsもネイティブアプリはそうだろ? 違うっけ?

410デフォルトの名無しさん2018/02/02(金) 23:17:28.47ID:2JRgrNpV
クロスプラットフォームは糞

411デフォルトの名無しさん2018/02/02(金) 23:39:49.14ID:4J1UtiB3
Xamarin C#が正解

412デフォルトの名無しさん2018/02/03(土) 00:17:14.67ID:Pk3rL+mD
ちょまど教の狂信者か

413デフォルトの名無しさん2018/02/03(土) 02:29:40.70ID:rIodJ30B
Xamarin程の糞はない
C#も10年前の時代遅れの言語だし圧倒的にswift,Java,Kotlinの方が人気が高いし求人も多い
VS for Macはgitでブランチを切り替えたりするだけでビルドできなくなって、
クリーン、リビルド、IDE再起動、PC再起動を頻繁に繰り返さないといけなくなる欠陥品なのが糞
大体MicrosoftはWindowsPhoneのシェアを二桁取ってからモノを言えと言いたい
MicrosoftがやっていることはGoogleやAppleの作ったパイを横取りしようとしているだけ
MVVM前提の開発環境とか言うくせに外部ライブラリを入れないと良い感じでMVVMできないのが糞
UIは共通化できると言うわりにListViewは重くてスワイプがもたついたり画像の表示が遅かったりするのが糞
Xamarin.Formsはちょっと複雑なことしようとするとお得意のdependency serviceとcustom rendererの連発
クロスプラットフォームと言うならXamarin.Formsだけでできないことを恥じろよ
WebViewなどXamarin.Formsの提供するUI部品が糞すぎて
一旦Xamarin.Formsの提供する機能で実装して糞な思いをさせられた後で
Xamarin.AndroidとXamarin.iOSで計3回も同じ実装をさせられるのが糞
Xamarinなんてマイナーな環境使っている人が少ないせいでググって調べものするのに時間がかかるのが糞
qiitaやstackoverflowの情報もXamarinに関するものはAndroidの10分の1以下の投稿しかなくて
下手すると解決策が見つからなくてデザインや機能の面で妥協する結果となる
任天堂のXamarin製アプリもカブドットコムのXamarin製アプリも星平均3.0の糞アプリ認定されてる
MicrosoftのAndroid向けedgeブラウザもXamarin製でなく、
Microsoft自身も糞認定して使わない糞開発環境がXamarin
エンジニアもデザイナーもお客さんも全員がっかりするのがXamarin
結論としてXamarinを使うと開発工数は伸びアプリのクオリティは落ちるということ
XamarinをやっているやつというのはC#の機能を使うことやXamarinを使うことそれ自体が目的化していて
お客さんに良いものを届けたいという意思が存在していない
ソフトウェアを作るということは価値のあるものを世の中に提供して世の中をもっといい場所にするために
行われることであるべきで、完全に自分本位でゴミを量産し続けるXamarinエンジニアは全員死んだ方が良い

414デフォルトの名無しさん2018/02/03(土) 08:57:07.88ID:cx3bBBlj
>>413
KotlinもUIはJVM, JS, Nativeとそれぞれ開発しないといけないという方向性なんだよね。
マルチプラットフォームでUIもKoltinで1回書くだけで済む日は来ないんだろうか。
>>406
Gluonという会社がAndroidとiOS向けのJVM(JavaFX付き)を作るとか言っていたんだけどどうなったのかな。
ページを見に行くとあるにはあるっぽい。
使った人とかいます?

415デフォルトの名無しさん2018/02/03(土) 09:01:37.02ID:w4Z6vlfg
>>406
Macだけなら余裕。
TornadoFXであっさり作れる。

416デフォルトの名無しさん2018/02/03(土) 09:18:56.79ID:JaWlScCi
>>406 >>407
KotlinでiPhoneアプリは作れる

417デフォルトの名無しさん2018/02/03(土) 09:33:24.43ID:JaWlScCi
参考

Android・iOS対応のクロスプラットフォームライブラリ、Intel Multi-OS Engine(MOE)
https://qiita.com/yyYank/items/2d96640d713a527691be

Kotlin/Nativeを使ってiOSアプリを作ってみる
https://qiita.com/noripi/items/4ee969c48b3da5ca6fbd

418デフォルトの名無しさん2018/02/03(土) 09:37:01.92ID:cwvA0gbQ
面倒くさそう

419デフォルトの名無しさん2018/02/03(土) 09:45:23.72ID:JaWlScCi
>>418
面倒なら
 ・SwiftやObjective-Cで直に作る
 ・Cordovaなどで作る
 ・iPhoneアプリは諦める
詳細は該当のスレでどうぞ

420デフォルトの名無しさん2018/02/03(土) 09:50:47.55ID:w4Z6vlfg
>>417
こんなんあるのか、知らなかった。試してみるよありがとう。
ただクロスプラットフォームのライブラリって大体最終的にうまくいかないから、つい警戒してしまうw

421デフォルトの名無しさん2018/02/03(土) 10:04:18.17ID:g4V8Xpml
Xamarin C#が正解だよ
簡単で高品質

422デフォルトの名無しさん2018/02/03(土) 11:58:07.39ID:rIodJ30B
時間掛かって低品質のアプリが出来上がるだけクロスプラットフォーム

423デフォルトの名無しさん2018/02/03(土) 12:05:11.68ID:Pk3rL+mD
正式セミナーで技術より人脈なんて宣伝する糞プラットフォームは使わない

424デフォルトの名無しさん2018/02/03(土) 12:51:45.20ID:3SRelbb9
Xamarinは簡単だけど高品質かと言われると、、

425デフォルトの名無しさん2018/02/03(土) 12:54:52.62ID:3SRelbb9
実際クロスプラットフォームが最適なアプリってそんな多くないよな。
何かの画像処理をするとかそういう端末内で複雑なビジネスロジックを組まなくちゃいけないものならそこを共通化できるメリットはあるだろうけど、
サーバーサイドと通信して何かをするのがメインなクライアント系アプリなら普通にネイティブで2つ作った方が楽

426デフォルトの名無しさん2018/02/03(土) 13:19:34.45ID:cwvA0gbQ
Unityでええやん

427デフォルトの名無しさん2018/02/03(土) 13:29:02.91ID:g4V8Xpml
APIクライアントやちょっとした処理も完全に共通化できるから便利だよXamarin
Java,Kotlin / Swift,obj-cだと日付型と日付操作apiみたいな些細な部分でも違いがある
C#にすると文法や基本ライブラリの粒度で共通化できる

428デフォルトの名無しさん2018/02/03(土) 13:58:55.43ID:cwvA0gbQ
C++使いなら、QTとかSDLとか

429デフォルトの名無しさん2018/02/03(土) 14:47:37.76ID:rIodJ30B
Xamarinみたいな糞はプロトタイプ開発でしか使い道ない
まともなアプリはみんなネイティブ
任天堂のXamarin製アプリもカブドットコムのXamarin製アプリも星平均3.0の糞アプリ認定されてる
Microsoft自身も糞認定して使わない糞開発環境がXamarin

430デフォルトの名無しさん2018/02/03(土) 15:38:21.40ID:I3vkx3c9
Unityは日本語入力の問題さえ解決すれば多分かなりの部分の解決になると思う。
なんせ画面を描くところから自力でやってるからな。
業務アプリでもポチポチ画面押すだけの物とか結構いけると思うし、実際あるんじゃないかな。

431デフォルトの名無しさん2018/02/03(土) 15:57:45.75ID:h3rMVgMV
共通部分はともかくUiはそのプラットフォームのネイティブでやったほうが結局は簡単なんだよな

432デフォルトの名無しさん2018/02/03(土) 16:06:38.75ID:g4V8Xpml
どのプラットフォームでもネイティヴで書いてもVとVMは普通に分離するだろ
なんでマルチプラットフォーム対応で追加のコストはかからない

433デフォルトの名無しさん2018/02/03(土) 16:32:01.67ID:c+hycmxt
>>430
おう業務アプリと入力フォーム部品の蜜月性なめんあ
Unityはゲームと家庭向けアプリ特化の方向性のままでいいと思うぞ

434デフォルトの名無しさん2018/02/03(土) 18:14:08.46ID:05c/5eCT
クロプラは凝ったことしようとすると詰むね

435デフォルトの名無しさん2018/02/03(土) 18:35:13.80ID:biHS6/dY
Xamarin程の糞はない

436デフォルトの名無しさん2018/02/03(土) 18:46:40.72ID:I3vkx3c9
>>433
確かにそうか。
社内カレンダー通りの休日がマークされる日付選択とか、営業日入力とか色々あるもんな。

437デフォルトの名無しさん2018/02/03(土) 23:11:11.34ID:w4Z6vlfg
>>432
すまんけどそろそろXamarinスレに帰ってもらっていいかな

438デフォルトの名無しさん2018/02/03(土) 23:47:52.38ID:Dj9L0wRm
ザマァw

439デフォルトの名無しさん2018/02/03(土) 23:53:32.22ID:g4V8Xpml
Xamarinで全てが解決する

440デフォルトの名無しさん2018/02/04(日) 00:09:06.97ID:uJTrEg0Y
ざまりんは座間市のマスコットキャラクターです

441デフォルトの名無しさん2018/02/04(日) 01:24:03.44ID:fXO59JwO
>>417
MOE ART って、もう狙ったネーミングとしか思えない。

442デフォルトの名無しさん2018/02/04(日) 01:28:27.34ID:fXO59JwO
ざまりんとことりん・・・りん繋がりか

443デフォルトの名無しさん2018/02/04(日) 09:35:33.76ID:FBsDULoD
>>442
どう考えてもことりんの方がかわいい

444デフォルトの名無しさん2018/02/04(日) 09:54:33.07ID:fkv+V9jD
クマリンだと税金までとってくれる

445デフォルトの名無しさん2018/02/04(日) 09:57:33.79ID:FBsDULoD
今更だけど、ことりんとこっとりんどっちが正しいんだろ

446デフォルトの名無しさん2018/02/04(日) 10:25:02.12ID:djmEPYyF
XamarinをやっているやつというのはC#の機能を使うことやXamarinを使うことそれ自体が目的化していて
お客さんに良いものを届けたいという意思が存在していない
ソフトウェアを作るということは価値のあるものを世の中に提供して世の中をもっといい場所にするために
行われることであるべきで、完全に自分本位でゴミを量産し続けるXamarinエンジニアは全員死んだ方が良い

447デフォルトの名無しさん2018/02/04(日) 11:57:10.52ID:nOFNDTKE
ことりんの記述の簡潔さが良いと言われているスレに来てC#書けなんて言われたらそりゃ嫌がらせだよ

448デフォルトの名無しさん2018/02/04(日) 12:57:23.44ID:jtpbEfK1
C#の方がエレガントなコードを書けるでしょ
エレガントで保守性の高いプログラムはお客にとってもありがたい
お客にいいものを届けたいならXamarinだよ
Kotlinの奇形じみたセンスのない文法はお客も辟易してる
kotlinを使いたいというプログラマのわがままでお客に迷惑をかけちゃダメだ

449デフォルトの名無しさん2018/02/04(日) 13:02:47.05ID:FBsDULoD
なんか変なのが居着いちゃったな。。。

450デフォルトの名無しさん2018/02/04(日) 13:28:53.05ID:FSE7+++a
C#は、.Net か Monoを入れないといけないのがウザいし
JavaやKotlinは、JDK入れないといけないし、
やっぱそういう意味では、Swiftが最強やな

451デフォルトの名無しさん2018/02/04(日) 13:45:15.33ID:zMXPgQ7i
ねーよ

452デフォルトの名無しさん2018/02/04(日) 13:47:54.74ID:th3aOzJF
ことりんスレということを思い出していただきたい

453デフォルトの名無しさん2018/02/04(日) 14:38:34.08ID:iVs4GAGZ
何ここ、ザマリンスレなの?

454デフォルトの名無しさん2018/02/04(日) 14:39:13.20ID:zMXPgQ7i
ザマリンアンチが居ついた

455デフォルトの名無しさん2018/02/04(日) 15:18:28.39ID:Iw8xCsU2
Xamarinスレでは相手にされないものでね
ここなら最初からできる

456デフォルトの名無しさん2018/02/04(日) 17:01:56.94ID:fXO59JwO
うーん。しかし、Xamarin って本屋行くとiOSアプリ関係の本の所にちょっとしか置いてないし、
ほとんど名前しか知らないから俺には批判することすらできないなあ。眼中にない感じ。
仕事でも必要になることは今のところ全くないし。(ま、仕事で使わないと言えば Kotlin も
Java も俺は使わないんだけどね)。

457デフォルトの名無しさん2018/02/04(日) 17:20:25.12ID:FSE7+++a
Xamarinに興味ないのならこのスレ来んなよカス

458デフォルトの名無しさん2018/02/04(日) 17:24:52.19ID:zMXPgQ7i
>>457
ここKotlinスレやでwww

459デフォルトの名無しさん2018/02/04(日) 17:29:38.53ID:fXO59JwO
>>457
全くないねえw

460デフォルトの名無しさん2018/02/04(日) 19:41:54.65ID:djmEPYyF
Xamarin程の糞はない

461デフォルトの名無しさん2018/02/04(日) 20:04:16.29ID:8c6AhnDA
お前らそんなに暇ならKotlinで人の役に立つブラグラムでも書いてこいよ

462デフォルトの名無しさん2018/02/04(日) 20:14:32.95ID:th3aOzJF
やだよ
俺は俺のためにプログラムするだけだ

463デフォルトの名無しさん2018/02/04(日) 20:40:33.04ID:NcR26d4z
ことりんはBカップ、ザマリンはHカップだそうだ。
どっちが優れているかは明らかだろう。

464デフォルトの名無しさん2018/02/04(日) 21:04:53.75ID:v0/VVSUj
ザマリンはケツぷりんぷりんやで

465デフォルトの名無しさん2018/02/05(月) 06:25:07.64ID:XnXa3nca
>>463
その二択ならことりんだわ

466デフォルトの名無しさん2018/02/05(月) 07:01:14.71ID:PujqrgUf
ことりん使いはロリコンってことなのか?

467デフォルトの名無しさん2018/02/05(月) 09:24:55.28ID:Bet9M/a/
まぁ、そういうことになるわな

468デフォルトの名無しさん2018/02/05(月) 11:01:26.93ID:U6/FYtwu
女性の敵ですよ(歌詞)

469デフォルトの名無しさん2018/02/05(月) 17:22:37.32ID:tfCzDdoz
ある非同期関数を呼び出し側のコンテキストで実行したいのですが、例えばC#の場合
void async testAsync() {
 await funAsync1(); // configureAwait(false)しない
 hoge1();
 await funAsync2(); // configureAwait(false)しない
 hoeg2();
}
で、testAsyncをメインスレッドから呼び出しせば、hoge1とhoge2は呼び出し側のコンテキストつまり
メインスレッド上で実行されるのですが、
同じ事をkotlinでやるにはどうすればいいでしょうか??
fun testAsync() : Job {
 return launch {
  funAsync1().await() 
  hoge1();
  funAsync2().await()
  hoge2();
 }
}

470デフォルトの名無しさん2018/02/05(月) 17:23:55.91ID:tfCzDdoz
launch(UI)とか昔のコードみるとあるのですが、UIは廃止されたのでしょうか?

471デフォルトの名無しさん2018/02/05(月) 17:57:24.43ID:RkA+fItw
ここXamarinスレだから、そんなこと聞かれても困る

472デフォルトの名無しさん2018/02/05(月) 18:58:41.41ID:wW/kiq+x
>>463
情報の出処について詳細求む

473デフォルトの名無しさん2018/02/05(月) 20:07:43.39ID:Gnk0ssBz
なんかスレチな話題ばっかりなんだが、コトリンインアクション買う価値ある?
本家HPのリファレンスで十分?

474デフォルトの名無しさん2018/02/05(月) 20:54:56.13ID:AaZ8U1Zi
>>473
わからない。それは今のお前の状態によって変わる。立ち読みして自分で決めろ。

まあしかし俺のエスパー能力を使った直観によれば、多分買った方が良い。

475デフォルトの名無しさん2018/02/05(月) 21:08:10.13ID:tfCzDdoz
launch(UI)のUIはcoroutine-androidの別モジュールだった。すみません。

476デフォルトの名無しさん2018/02/05(月) 21:14:06.27ID:U6/FYtwu
コルーチンは実験的らしいけど
Androidなら「android kotlin 非同期」とかでググってみたらいいんじゃないかな

実験的じゃない方なら「android 非同期」でJavaのやり方をそのままKotlinに

477デフォルトの名無しさん2018/02/05(月) 23:17:35.87ID:nOjIwE3H
>>473-474
Kotlinイン・アクション、2017
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

太郎はたぶん、イン・アクションを参考にしながら、スタートブックを書いたのかな?
そういう意味では、太郎本の方が有利

478デフォルトの名無しさん2018/02/06(火) 05:27:10.63ID:8sdmif4x
>>473
本家HPの英文リファレンスを読みこなせるなら、イン・アクションはいらない。
Kotlinをこれから始める人で1冊しか買えないのなら>>477の言う通り太郎本がいい。

479デフォルトの名無しさん2018/02/06(火) 06:25:53.98ID:rJfYat5w
コルーチンっていつまで実験的扱いなんだ
普通に十分実用に耐えるんだが

480デフォルトの名無しさん2018/02/06(火) 08:50:02.13ID:BCxTzJO3
>>478
サンクス
じゃー、様子見するよ

立ち読みしろって言われても近くにでかい本屋ねーし、4000円越えで無駄に高いしな

481デフォルトの名無しさん2018/02/06(火) 09:12:44.31ID:mPJqoZjS
標準でページ翻訳を備えるブラウザが便利
stackoverflow(英語本家)のやり取りなんかは本じゃ得られないし

482デフォルトの名無しさん2018/02/06(火) 09:21:42.12ID:BI0U6pHR
ノン・アクション

483デフォルトの名無しさん2018/02/06(火) 09:30:50.75ID:KYIMWbNh
Amazonでkindle版のサンプルがただで読めるよ。サンプルだからどの程度まで読めるかはわからないが。

484デフォルトの名無しさん2018/02/06(火) 11:58:30.44ID:Ql6hMbqV
Stackoverflowを翻訳なしで読めないならKotlinより先に英語を勉強した方が良いと思う
煽りじゃなくてマジで

485デフォルトの名無しさん2018/02/06(火) 12:37:44.65ID:mPJqoZjS
全く読めないならその通りだね
その場合検索もまともに出来ないだろうし
でも情報を探しているときに日本語と同じ速度で流し読み出来る人以外には翻訳おすすめ

486デフォルトの名無しさん2018/02/06(火) 12:53:34.58ID:BI0U6pHR
Google先生の翻訳精度も最近上がってる気がする

487デフォルトの名無しさん2018/02/06(火) 13:14:41.74ID:Cp0wU7qW
たまにできる・できないとか真逆の意味で訳される

488デフォルトの名無しさん2018/02/06(火) 14:05:56.32ID:oL/xYjbv
読めなくても文法の基礎知識があれば翻訳を修正しながら読める

489デフォルトの名無しさん2018/02/06(火) 20:33:53.89ID:BCxTzJO3
最近のGoogle先生はほんと優秀で、一回全部Google翻訳にかけて、意味がわからんところだけ英文見て修正するだけでも単語調べる時間減るから、だいぶ時間の節約になる

490デフォルトの名無しさん2018/02/06(火) 21:28:26.63ID:HNEg71Ng
精度が良いからって頼りきりなのは問題だよ
データシートも翻訳するの?

491デフォルトの名無しさん2018/02/06(火) 22:10:15.81ID:rTnXOt5h
時間節約や翻訳支援に有用性があるという程度の話に
突っかかって行く意味あるのか?

492デフォルトの名無しさん2018/02/06(火) 23:01:06.65ID:ovlDN9kS
言語オタクと初心者以外本なんて必要ないような
最低限の知識は軽く公式のドキュメント読んで後は
その都度覚えれば十分だなぁ
言語オタクじゃないので言語よりアプリ作るのが目的だからな

493デフォルトの名無しさん2018/02/06(火) 23:03:49.83ID:BI0U6pHR
Kotlin自体より、Android SDK等のクラスライブラリの方が使いこなすの大変だわ

494デフォルトの名無しさん2018/02/07(水) 16:35:52.55ID:c/oxW6ag
新しい言語覚える時は適当に評価高い本を一冊買う派だな俺は
全体像をつかむのに体系的ににまとまった本はやっぱり便利

495デフォルトの名無しさん2018/02/09(金) 11:15:30.34ID:S2cW3gVf
自分の慣れた言語で当たり前だったやり方でも、他の言語ならもっとスマートに書けるとかあるからな
公式ドキュメントだとどうしても全体を俯瞰的に見るのは難しいから、自分が存在を知っている情報以外の情報に気付きにくい

496デフォルトの名無しさん2018/02/10(土) 18:20:28.04ID:ax7FG40j
カンファレンス楽しみ

497デフォルトの名無しさん2018/02/11(日) 00:06:26.27ID:Dss3s5Hr
ねえ
// int[] sKey
// byte[] wKey
// int data
wKey[0] += sKey[(int) wKey[1] & 0xFF] - data;
wKey[1] -= (byte) ((sKey[(int) data & 0xFF] ^ wKey[2]) & 0xFF);
wKey[2] ^= (byte) (data + sKey[(int) wKey[3] & 0xFF]) & 0xFF;
wKey[3] -= (byte) (wKey[0] - sKey[(int) data & 0xFF]) & 0xFF;

int dKey = ((int) wKey[0]) & 0xFF | (wKey[1] << 8) & 0xFF00 | (wKey[2] << 16) & 0xFF0000 | (wKey[3] << 24) & 0xFF000000;

こういうのってKotlinでどう書けばいいの…

498デフォルトの名無しさん2018/02/11(日) 00:14:54.33ID:7rBQZAiC
宿題は自分でやろうね

499デフォルトの名無しさん2018/02/11(日) 00:37:59.12ID:tZ50hO/2
>>497
IntelliJかAndroidStudioで変換してエラーを手修正すればOK

500デフォルトの名無しさん2018/02/11(日) 05:15:17.18ID:B0DbdRYG
>>497
それは何ていう言語で書いてあるんだ?

501デフォルトの名無しさん2018/02/11(日) 06:47:22.49ID:7rolFSqw
>>497
言いたいことを想像しながらの答えになるけど、ビット演算もシフト演算もKotlinにはあるよ。
ttps://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html
Cのような見栄えにならないとしても、それはKotlinの目指すところではないということかと。

502デフォルトの名無しさん2018/02/11(日) 08:33:39.91ID:HsBVk8FN
kotlinでやるならwKeyもIntArrayとかにしたほうがよさそう

503デフォルトの名無しさん2018/02/11(日) 08:54:01.46ID:tZ50hO/2
普通にJavaでしょ
殆どIntelliJがやってくれる

504デフォルトの名無しさん2018/02/11(日) 10:57:18.59ID:7jnO/yAb
>>497
IntelliJでunko.ktというファイルを作る
そのコードをそのまま貼り付ける
終わり

505デフォルトの名無しさん2018/02/11(日) 11:35:59.62ID:hLOHWIXG
もとの言語知らんけどもっとマシな書き方あるだろと思う

506デフォルトの名無しさん2018/02/11(日) 11:51:33.86ID:qM2RbKtk
何かの外部の処理論理をそのまま記述したって感じだな
外部の処理記述と突き合わせなければならないような場合はこんなのをよく見る
変にスマートに書き換えされてると脳内再変換コストがかかるというパターンw

507デフォルトの名無しさん2018/02/11(日) 13:44:27.62ID:Dss3s5Hr
>>501
なんか折角いろいろ簡略化して書けて見やすくて良いねって思うけどそういうのは融通利かないな_

あとこれ>>502
何故Byte→Short→Intを自動でやってくれないのか

508デフォルトの名無しさん2018/02/11(日) 14:07:54.93ID:tZ50hO/2
>>507
Javaではこれがfalseになる

Integer a = 0;
Long b = a + 0L;
System.out.println( a.equals(b) );

コード上のプリミティブ型とクラス型の区別を排除していたり(最適化でプリミティブ型になる)
型推論を持つKotlinで数値型の暗黙の型変換は地雷になるのであえて無くしている

509デフォルトの名無しさん2018/02/11(日) 16:20:36.85ID:QgiY6BS8
こういうの見るとセンスねえなあって思う
C#の開発者が優秀すぎた

510デフォルトの名無しさん2018/02/11(日) 18:58:12.47ID:JShv+xJ2
Javaの検査例外になれるとKotlin-JVMで検査例外使えないのが辛い・・

511デフォルトの名無しさん2018/02/11(日) 20:20:29.62ID:Dss3s5Hr
>>508
例えば引数にByteを使う場合にJavaでは数値の明示的変換が要るのに対してKotlinでは要らないけど
いざ数値と比較しようとするときには
-> Java/Kotlin
== -> true/error
==(cast) -> true/true
equals -> false/false
equals(cast) -> true/true
になってKotlin側は値比較をしてくれないのはそのせいか

いやでも引数に使うときや代入時には(型の範囲内なら)変換無しで通るんだから
数値比較でも比較される型の範囲内ならキャスト不要にして欲しいな

512デフォルトの名無しさん2018/02/11(日) 21:15:48.50ID:prqcbbby
kotlin初心者の質問くんはここでいいですか…?

513デフォルトの名無しさん2018/02/11(日) 21:19:39.67ID:gE7bRFhE
ほかあたってください

5145122018/02/11(日) 21:22:12.72ID:prqcbbby
すみませんでした

515デフォルトの名無しさん2018/02/11(日) 21:58:08.45ID:B0DbdRYG
>>513
いや、いいだろ。なぜ?

516デフォルトの名無しさん2018/02/11(日) 22:32:21.15ID:gE7bRFhE
すみません、Xamarinスレと勘違いしました

517デフォルトの名無しさん2018/02/12(月) 15:11:34.54ID:Ut4sP9LM
ワロタ

518デフォルトの名無しさん2018/02/12(月) 15:28:15.00ID:rB04jb5x
kotlinの話題が許されないkotlinスレ

519デフォルトの名無しさん2018/02/12(月) 15:36:24.81ID:lpfNHnpq
何言ってんだここはザマリンスレだぞ

520デフォルトの名無しさん2018/02/12(月) 16:44:32.14ID:gfcybQxo
そういや Kotlin も初心者質問スレみたいのがあった方が良いんじゃないか?
今はまだ言語そのものを知らない人が多いようなのでこのスレだけでも良いかも知れないが、何れ増えて来るだろうし。

521デフォルトの名無しさん2018/02/12(月) 19:14:25.11ID:rB04jb5x
そんなん増えてきたら作ればいいだろ
このスレですら過疎すぎてxamarinに乗っ取られてるんだからこれ以上住人を分散させなくていい

522デフォルトの名無しさん2018/02/12(月) 19:27:31.45ID:gtsgi9fT
Xamarin程の糞はない

523デフォルトの名無しさん2018/02/12(月) 20:00:50.98ID:waI/80wR
ある

524デフォルトの名無しさん2018/02/12(月) 20:06:04.05ID:gfcybQxo
>>521
ま、そうだな。

525デフォルトの名無しさん2018/02/12(月) 21:59:41.62ID:TVd19ADi
XamarinってKotlinより流行ってるん?

526デフォルトの名無しさん2018/02/12(月) 22:20:35.54ID:Af1G2ZWC
結局Xamarinの話題でまわるスレ

527デフォルトの名無しさん2018/02/12(月) 22:23:41.28ID:rB04jb5x
Kotlinはようやく存在が知られ始めたところだし、これからよ

528デフォルトの名無しさん2018/02/12(月) 22:26:32.35ID:NpQ9GJ9J
ざまりんとかことりんとか何か気安いな

529デフォルトの名無しさん2018/02/12(月) 22:35:59.46ID:Bk9VmC4X
XamarinというかC#が強すぎるんだよね

530デフォルトの名無しさん2018/02/12(月) 22:46:21.77ID:gfcybQxo
いやしかし特定の分野でだけではないかな。Web関係とか。
少なくとも俺の日頃の仕事では全く絡まないのでどこでよく使われているのかよくわからない。

531デフォルトの名無しさん2018/02/13(火) 06:41:15.56ID:+5F8N/ik
C++でAndroid書くみたいなのは完全にオワコン?

532デフォルトの名無しさん2018/02/13(火) 09:16:08.55ID:WXuIo0Zq
ニッチコン

533デフォルトの名無しさん2018/02/13(火) 09:22:14.51ID:Hjhq84aM
>>531
ネイティブってこと?それだと当然CPUが違うと動かないよね。

534デフォルトの名無しさん2018/02/13(火) 09:28:15.91ID:WXuIo0Zq
え?

535デフォルトの名無しさん2018/02/13(火) 10:09:44.20ID:ek2wpFVO
Xamarinって確かライセンス買わないと使える機能に制限あるんじゃなかったっけ

536デフォルトの名無しさん2018/02/13(火) 11:48:52.36ID:i1aJT757
使った事がないのでわかりません

537デフォルトの名無しさん2018/02/13(火) 12:50:25.21ID:d0Q2J5B+
そうか Java VMで動くC#があれば全て解決するのか

538デフォルトの名無しさん2018/02/13(火) 14:45:21.02ID:flHxC5Ds
>>537
なんでわざわざJVMで?

539デフォルトの名無しさん2018/02/13(火) 16:28:11.56ID:JFn7hM60
C#自体あんまり好きじゃないから勘弁してくれ

540デフォルトの名無しさん2018/02/13(火) 19:15:59.91ID:KJxSXl65
>>535
XamarinのライセンスはVisual Studioライセンスに統合されてる
Communityライセンスの条件内なら無料
そうでなければ年間サブスクリプションが必要(約6万円 / 年・開発者)

541デフォルトの名無しさん2018/02/13(火) 20:59:24.53ID:YVR14H+q
安いなぁ

542デフォルトの名無しさん2018/02/13(火) 21:10:26.79ID:RM6vxbUw
安いと感じるか高いと感じるかはあなたしだいです。

543デフォルトの名無しさん2018/02/13(火) 23:22:43.96ID:7sc/QqUb
でここはKotlinスレでいいんだよな?

544デフォルトの名無しさん2018/02/14(水) 00:51:14.52ID:71Om1Biy
Kotlin だって
いいじゃないか
JavaVM だもの

545デフォルトの名無しさん2018/02/14(水) 07:14:41.99ID:3FUTBO2y
>>537
.NET上で動くJVMならあるけど(実用に耐えるとは言っていない)。
ttp://www.ikvm.net/index.html

546デフォルトの名無しさん2018/02/14(水) 12:55:24.11ID:EGLxgTrP
kotlinは好きだけどJVMがなぁ・・・
て思ってる人はかなり多いと思うよ

kotlin nativeに頑張ってもらって
さっさとJVMから足洗ってほしい

547デフォルトの名無しさん2018/02/14(水) 13:07:48.38ID:d5//Tphf
同意

548デフォルトの名無しさん2018/02/14(水) 13:19:15.79ID:WIinEwd5
ぼきはJavaのライブラリ使うのでJVMでもいいれす(^p^)

549デフォルトの名無しさん2018/02/14(水) 13:35:25.05ID:QwasDp2D
俺もとりあえずはJVMで良い。
気になるのはJavaScriptの方かな。

550デフォルトの名無しさん2018/02/14(水) 17:38:51.85ID:D3O9gfhg
Kotlinに移行しようかとしばらく触ってみたけど、C#の方が痒いところに手が届くいい言語だな、、、

551デフォルトの名無しさん2018/02/14(水) 18:38:51.02ID:8PtXrtN7
なんだかんだで膨大のJavaのライブラリとそれらのノウハウを使えるってのが大きいわな

552デフォルトの名無しさん2018/02/14(水) 19:57:38.83ID:oF080CGK
Javaの腐ったライブラリよりC#の洗練されたライブラリの方が有り難いんだけど

553デフォルトの名無しさん2018/02/14(水) 20:14:34.75ID:viC2s+IO
>>551
>なんだかんだで膨大のJavaのライブラリとそのノウハウ
それを負の遺産という

554デフォルトの名無しさん2018/02/14(水) 20:56:03.30ID:UlcWCziO
>>55
バッドノウハウは要らないのと神託社に抑えられいるのがイヤン

555デフォルトの名無しさん2018/02/14(水) 21:35:40.97ID:mO/mX4fn
ほとんど借金なんだよなぁ
COBOLと同じ道辿ってる

556デフォルトの名無しさん2018/02/15(木) 12:27:28.16ID:GqN6d9KA
イミフ

557デフォルトの名無しさん2018/02/15(木) 13:04:38.64ID:n8vclWLi
JAVAの肩持つわけじゃないがCOBOLと同じ道は流石にないわ

558デフォルトの名無しさん2018/02/15(木) 18:18:01.31ID:CMBfD/sb
COBOLとは全然状況違うよな
分散処理のフレームワークとかミドルとか活発に開発されてるし
言語としては最先端ではないかもしれないけど、逆に最先端の言語でも優れたプロダクトを生み出してないなら大して存在価値ないし

559デフォルトの名無しさん2018/02/15(木) 18:44:01.31ID:krlBMZHL
これから終わるんだよ
kotlinとc#に駆逐される

560デフォルトの名無しさん2018/02/15(木) 18:54:22.05ID:skblyvdp
JavaVMの上でCOBOLが動くようになったりして・・・

561デフォルトの名無しさん2018/02/15(木) 19:02:58.45ID:SuVvVuMr
一定の奴隷需要は残るだろうね

562デフォルトの名無しさん2018/02/15(木) 19:36:21.03ID:1CgTZOOO
これから終わると言われ続けて10年

563デフォルトの名無しさん2018/02/15(木) 21:54:13.46ID:qz0oQ/wP
write once run anywhereとか言われてた頃が懐かしいな

564デフォルトの名無しさん2018/02/15(木) 22:34:41.26ID:2kJoQloU
>>560
いつだか覚えていないくらい昔にマジメにそれを開発しようとしてた会社があったような
COBOLしか書けないおじさんを救済するためだけの代物ですぐ頓挫したけど

565デフォルトの名無しさん2018/02/15(木) 22:40:34.93ID:2kJoQloU
まあでも確かにJava言語は使われなくなっていくだろうね。
うちもJavaで作ってるシステムの機能追加なんかはkotlinでやってるし、JVMで動かすのが要件な新規のプログラムももうほぼkotlinに移行してる。
スマホは知らんけどandroid開発はもうkotlinが多いのかな?

566デフォルトの名無しさん2018/02/15(木) 23:12:11.62ID:/UvppoEW
ドロイド会議のアンケートでもkotlin使ってるひと多かったし

567デフォルトの名無しさん2018/02/15(木) 23:59:58.64ID:9umHg1OB
Kotlinを推しつつもJavaはまだ現役だと考えている

しかしJava8でラムダが入ったときと
AndroidがJava8に対応したときは正直「余計なことしおって」と思ったな
Java6のままだったら今以上にKotlinが推されてただろうからw

568デフォルトの名無しさん2018/02/16(金) 03:16:32.96ID:RsIE9z2G
しかしJavaのラムダはやりすぎだろって感じがした。

569デフォルトの名無しさん2018/02/16(金) 05:43:13.28ID:shLmPi2M
確かに
レガシーJavaおじさんと現代人Kotlin使いで棲みわけた方が平和だったかもしれないね

570デフォルトの名無しさん2018/02/16(金) 06:37:35.95ID:br7rfOfj
kotlinでandroidの説明してるところなんか全然ない
先進的な一部が勝手に使い始めてるだけで普及の段階ではない、いつもながら日本は遅れてる

571デフォルトの名無しさん2018/02/16(金) 06:49:21.30ID:UxRi07OK
全然ないことはないだろ

572デフォルトの名無しさん2018/02/16(金) 07:11:23.90ID:shLmPi2M
(僕の周りでは)全然ない
(国内では)全然ない

573デフォルトの名無しさん2018/02/16(金) 07:17:40.02ID:W9Ay2BhF
最近ネットに出て来るandroid周りのサンプルはほぼkotlinじゃない?

574デフォルトの名無しさん2018/02/16(金) 09:05:39.78ID:3Bntq5A/
kotlinの実務経験ないやつは失業ざまあwww

575デフォルトの名無しさん2018/02/16(金) 09:19:32.40ID:OW1usLwi
実務経験って、そもそも実務で使われてる所がまだ少なかろう。

576デフォルトの名無しさん2018/02/16(金) 10:41:09.40ID:FgGKrURU
実際DroidKaigiのセッションスライドのコードはほぼKotlinだったし、実務もKotilnである割合はかなり増えてるでしょ。
自分も実務ではもう1年くらい使ってるし。

577デフォルトの名無しさん2018/02/16(金) 10:58:35.59ID:OW1usLwi
そりゃAndroidだから増えてて当然な感じするが、世の中にはAndroidしかないわけではないからなあ。

578デフォルトの名無しさん2018/02/16(金) 11:06:50.68ID:e2WRvV7P
俺は逆にandroidまったくやらんけどkotlinめっちゃ使ってるよ
ローカルのプログラムでもサーバーサイドでも

まだこういうのは少数派だろうけど

579デフォルトの名無しさん2018/02/16(金) 12:46:25.84ID:6HTN9r9U
ああ。俺は趣味では使うよ。というか学習中なので敢えて使う感じ。Kotlinだとどう書けるかを調べながら書いてる感じ。

580デフォルトの名無しさん2018/02/16(金) 12:47:35.63ID:ime2ev9d
ながら勉強?

581デフォルトの名無しさん2018/02/16(金) 12:58:29.56ID:6HTN9r9U
ながらというか、CやPerlなら仕事で何十年も使ってて間が働くからどう書くかはすぐ想像できる(Javaも趣味で20年ぐらいやってるのでなんとなくわかる)んだが、
Kotlinはそれと似たようにも書けるしKotlinならではの書き方もできるわけで、その辺のKpylin的な書き方を学習してる感じ。

582デフォルトの名無しさん2018/02/16(金) 12:59:00.48ID:6HTN9r9U
間がじゃない、勘がだ。

583デフォルトの名無しさん2018/02/16(金) 13:01:00.94ID:6HTN9r9U
うう。やはりスマホだと変なタイプミス増えるな。orz

584デフォルトの名無しさん2018/02/16(金) 13:02:16.20ID:6wcMGkCt
くぴりんw

585デフォルトの名無しさん2018/02/16(金) 13:05:28.66ID:3Bntq5A/
どうせお前らrxもMVVMもfluxも分からないんだろ
失業ざまああwwwwwww

586デフォルトの名無しさん2018/02/16(金) 15:00:09.56ID:WR2/4984
どこかで聞いたことがあるようなないような・・・

587デフォルトの名無しさん2018/02/16(金) 18:08:43.61ID:LeDNkgwE
>>583
タイプミスじゃなくて誤変換
フリックは関係ない、注意力が欠けてるだけ

588デフォルトの名無しさん2018/02/16(金) 19:12:39.30ID:pw8u3FlN
>>585
rxとmvvmはわかる
fluxがわからないから3行で説明して

589デフォルトの名無しさん2018/02/16(金) 19:50:26.64ID:uCgPr+rC
>>588



590デフォルトの名無しさん2018/02/16(金) 20:40:30.87ID:YSXjevvC


知らない

591デフォルトの名無しさん2018/02/16(金) 21:50:37.65ID:A7OU5IQx
車輪の
再発明に
名前を付けた

592デフォルトの名無しさん2018/02/16(金) 22:05:45.45ID:JKZCusui
モルゲッソヨ

593デフォルトの名無しさん2018/02/16(金) 22:11:32.26ID:kk8fZRd1
今分かったんですけど、プライマリコンストラクタ宣言せずに
セカンダリコンストラクタって宣言できるんですね。

プライマリコンストラクタの主な用途ってコンストラクタのパラメータの宣言とプロパティの宣言を
一緒にできるぐらいですか??用途は。
class Test(val p1: String)とか

594デフォルトの名無しさん2018/02/16(金) 23:21:19.28ID:JKZCusui
>>593
中身が空っぽなだけで、プライマリコンストラクタは常にあるよ
https://ideone.com/tSGMPY

595デフォルトの名無しさん2018/02/16(金) 23:59:52.15ID:JKZCusui
基本は省略表記なだけ
https://ideone.com/3Uc2dJ

596デフォルトの名無しさん2018/02/17(土) 00:19:37.32ID:1ji1uAN3
>>594
でも、空のプライマリコンストラクタを明示的に宣言するのと省略するのでは厳密には同一ではないですよね??

だから、言葉の定義の問題にもなっちゃうけど、initブロックはinitブロックであってプライマリコンストラクタと同一視
しない方がいいとか。プライマリコンストラクタはあくまでclass Test(val p1: String)のval p1: String部分だけで、
プライマリコンストラクタはボディは持てない。
初期化はinitブロックで行うとか?

597デフォルトの名無しさん2018/02/17(土) 00:24:21.47ID:1ji1uAN3
https://kotlinlang.org/docs/reference/classes.html
正式な言語仕様書とかないんでしったけ??
JavaとかC#はしっかりした言語仕様書みたいのあって言葉もしっかり定義されてると
思いますが、kotlinはそういうのないとか・・

598デフォルトの名無しさん2018/02/17(土) 00:37:46.91ID:1ji1uAN3
Note that code in initializer blocks effectively becomes part of the primary constructor.
Delegation to the primary constructor happens as the first statement of a secondary constructor, so the code in all initializer blocks is executed before the secondary constructor body
まぁ、ここにはプライマリコンストラクタの一部になるって書いてあるね。

599デフォルトの名無しさん2018/02/17(土) 00:43:30.54ID:vJDAw5Ja
>>596
そうね暗黙の場合と違いあるから省略という表現は不正確だったごめん

セカンダリコンストラクタが無い場合、暗黙のプライマリコンストラクタはpublicになる
セカンダリコンストラクタが有る場合、暗黙のプライマリコンストラクタは未初期化メンバを残せる

600デフォルトの名無しさん2018/02/17(土) 01:07:01.46ID:vJDAw5Ja
>>597
明らかにまだ未完成だけどこれだと思う
http://jetbrains.github.io/kotlin-spec/

601デフォルトの名無しさん2018/02/17(土) 09:11:07.08ID:cSouIKOJ
Kotlin使いがJava使いにマウント取ってる様を見てまたこの繰り返しかと思いそっ閉じ

602デフォルトの名無しさん2018/02/17(土) 11:37:12.55ID:EWYfJ6l0
マウント取ってるように見える?そりゃなんていうか、劣等感強すぎでは?
てか一々そんなこと考えてないで自分でも使えばいいじゃん。禁止されているわけでもなし。
Java が使える状態になったことのある人が Kotlin 使えるようになれないわけがないと思うが。

603デフォルトの名無しさん2018/02/17(土) 19:20:37.06ID:MOg6+5DY
ていうかkotlin使いって99%Java使いも兼ねてるだろうからマウントとるも何もないのでは

604デフォルトの名無しさん2018/02/17(土) 22:06:51.34ID:QsKtGr9g
今使ってる人はそもそもJavaできるからな
より使いやすくても、対立構造にはならないよな

605デフォルトの名無しさん2018/02/18(日) 01:22:27.54ID:5P/pcqvC
>>557
モバイル開発は違うかもだが、業務系は極端に言っちまうとjava要員集めるっつたら使い捨て兵隊集めだよ。

606デフォルトの名無しさん2018/02/18(日) 11:33:46.48ID:LPhOEvze
そんな自分の知ってる世界だけの狭い話をされても

607デフォルトの名無しさん2018/02/18(日) 13:07:28.97ID:hkjnjusX
Kotlin, RxJava, MVVMは基本的な必須スキルだからな
未だに実務経験ないやつは失業確定ざまああwwwwwww

608デフォルトの名無しさん2018/02/18(日) 13:07:47.53ID:1pIRFdOf
>>605
兵隊だなんてでたらめ書くなよ
兵隊じゃなくて奴隷だぞ

609デフォルトの名無しさん2018/02/18(日) 13:24:23.64ID:R7wrwf8X
Android系の技術スレは失業だの兵隊だの低いところでマウント争ってるんだな。稼いでるやついなそう。

610デフォルトの名無しさん2018/02/18(日) 13:56:19.84ID:D295fkqM
そういやKotlinはまだ求人数は少ないけど給与は良いって調査結果があったな
中途半端だと仕事にありつけないかもしれないな

611デフォルトの名無しさん2018/02/18(日) 14:56:03.30ID:oDDrqbus
しかしKotlinってKotlinらしくない従来のJavaっぽい書き方をしても動いてしまうからな。金を多く払う意味があまりないかも知れないぞ。

612デフォルトの名無しさん2018/02/18(日) 16:12:24.98ID:nyTLTr1m
Kotlinで単価が高いのは、チームが今後Kotlinでやってけるように導入の面倒見れる人だよ
>>611が言ってるレベルの奴なんてそもそも高い単価で雇われないから

613デフォルトの名無しさん2018/02/18(日) 16:20:57.25ID:JlUJeRgg
面倒みなきゃならんほどのものじゃないでしょ
プログラム初心者じゃあるまいし

614デフォルトの名無しさん2018/02/18(日) 16:37:41.33ID:nyTLTr1m
>>613
お前の周辺状況について述べてるわけじゃないことぐらい理解して

615デフォルトの名無しさん2018/02/18(日) 16:51:37.36ID:oDDrqbus
>>612
雇う側がそれを見抜ければ良いんだろうけどね。

616デフォルトの名無しさん2018/02/18(日) 17:24:17.84ID:JlUJeRgg
>>614
確認だけど職業としてプログラマやってる人たちの話って前提だよね?
小学校のプログラムの授業とかじゃなくて

617デフォルトの名無しさん2018/02/18(日) 19:36:30.68ID:nyTLTr1m
>>616
もういいよめんどくさい
じゃあKotlinできればそのレベルに関わらず誰でも単価高いってことでええわ

618デフォルトの名無しさん2018/02/18(日) 22:46:31.63ID:mRumiIcD
ラムダ式から式の外側のthisを参照するにはどうすればいいでしょうか?現状、
val this_ = this
async {
 this_
}
とかしてますけど、これ以外方法ない?

619デフォルトの名無しさん2018/02/19(月) 00:54:19.29ID:bFR3uyhH
>>618
無いことはないけど俺もそうしてるよ
class A {
  fun f(){
    async {
      this@A
    }
  }
}
https://kotlinlang.org/docs/reference/this-expressions.html

620デフォルトの名無しさん2018/02/19(月) 07:19:51.84ID:YvDQTksi
>>618
結局それが1番手っ取り早いと思うけど、this_っていう変数名は気持ち悪いから嫌

621デフォルトの名無しさん2018/02/19(月) 11:29:23.81ID:IoDkpp2Z
言っとくけどselfもダサいよ

622デフォルトの名無しさん2018/02/19(月) 11:44:10.96ID:yCg2MRRi
そうじゃねえだろ
それを言うなら、self_ もダサい

623デフォルトの名無しさん2018/02/19(月) 12:18:18.12ID:uDWMisC4
やっぱ thiz だよね

624デフォルトの名無しさん2018/02/19(月) 12:46:45.80ID:8HhXX1j3
どう書いても最適化されて同じコードになったりして・・・

625デフォルトの名無しさん2018/02/19(月) 16:13:32.25ID:qb2IEpmC
俺なら一目で何だか分かる名前にする

626デフォルトの名無しさん2018/02/19(月) 17:29:10.39ID:yTArt2lJ
例えば?

627デフォルトの名無しさん2018/02/19(月) 17:33:59.71ID:tDxwJ5H8
>>619
ありがとうござます。this@hogeを使う事にしました

628デフォルトの名無しさん2018/02/19(月) 17:36:07.64ID:UjHZ69on
>>626
val unko = this

629デフォルトの名無しさん2018/02/19(月) 17:37:58.45ID:jylwc8fn
ore,kore,sore

630デフォルトの名無しさん2018/02/19(月) 17:39:35.65ID:UjHZ69on
val 式の外側のthis = this

async {
式の外側のthis.method()
}

これが1番わかりやすいな

631デフォルトの名無しさん2018/02/19(月) 18:45:31.43ID:J+iGZU0/
class名.instanceはコトリンではつかえないのん?

632デフォルトの名無しさん2018/02/19(月) 22:24:58.24ID:9U/kf45x
>>631
objectで宣言したクラス(シングルトン)のclass名.INSTANCEのことでしょうか?

633デフォルトの名無しさん2018/02/19(月) 23:31:48.80ID:4xWfaW8A
エンクロージングインスタンスの話。
クラス名.thisの間違いだった。

634デフォルトの名無しさん2018/02/19(月) 23:50:04.20ID:bFR3uyhH
ラムダに束縛したいのはthisだけとは限らないしネストも有り得るので
クラス外の関数として分離した場合の引数名のイメージで変数名付けてる

val view = this
val cal = activeCalculator
async {
  cal.recalc()
  transaction {
    val tran = this
    check(cal, tran)
  }
  view.notifyUpdate()
}

635デフォルトの名無しさん2018/02/20(火) 06:41:06.84ID:qL04aTa6
>>634
真面目にいえば俺もこれ。
this_とかは仮に何かしらでもう一段ネストした時に詰む。

636デフォルトの名無しさん2018/02/20(火) 09:07:54.40ID:qXeXVbGF
ネストする時は、
this__
this___
this____
this_____

と、_を増やしてけば

637デフォルトの名無しさん2018/02/20(火) 10:02:20.87ID:I+nWo9FQ
よみづらい

638デフォルトの名無しさん2018/02/20(火) 10:02:36.87ID:pltRTpB+
>>636
フォントが違うと見え方が変わりそう

639デフォルトの名無しさん2018/02/20(火) 12:03:00.62ID:5NVGlXhy
>>636
天才かよ

640デフォルトの名無しさん2018/02/20(火) 12:57:02.91ID:DWBDu+Jk
ま、しかし、あまりにもネストが深くなるようならロジック考え直した方が良いかも

641デフォルトの名無しさん2018/02/20(火) 20:10:18.67ID:xSX01qXm
メソッド参照とか別クラスとか。

642デフォルトの名無しさん2018/02/20(火) 20:29:10.81ID:qXSQ9QV9
ネストは三段ぐらいまでにしといた方がいいだろうな。
その辺が迷宮の入り口だ。

Cのポインタとかも同じ。3段以上先には魔物が住んでいる。

643デフォルトの名無しさん2018/02/20(火) 20:35:32.22ID:qL04aTa6
せめて他のメソッドに切り出すくらいは最低でもやるべきだわな

644デフォルトの名無しさん2018/02/20(火) 22:17:03.69ID:/iBGk+pN
androidでデータバインディングしようとして
class Foo {
 @Bindable
 val bar get() = hoge.bar
}
とかできないの??・・・

645デフォルトの名無しさん2018/02/20(火) 22:18:25.44ID:/iBGk+pN
エラー内容はThis annotation is not applicable to target 'member property without
backingField or delegate'です。
どうしたらいいでしょかね

646デフォルトの名無しさん2018/02/20(火) 22:30:04.18ID:/iBGk+pN
Javaでは
class Foo {
 @Bindable
 String getBar() { hoge.getBar() }
}
で、hogeはFooのフィールド変数です。

647デフォルトの名無しさん2018/02/20(火) 23:05:50.58ID:/iBGk+pN
ごめんさい。解決しました。@get:Bindable

648デフォルトの名無しさん2018/02/21(水) 00:01:54.65ID:CION/kfn
また、アノテーションだけど。遅延初期化ではアノテーションつけれんの?しょぼーん。
@field:Transient
val lazyVal by lazy {}
だめか・・

649デフォルトの名無しさん2018/02/21(水) 14:48:51.57ID:aopUu534
いま触れてないけどkotlin-Nativeってどんな感じ?
ほとんどなんでもコンパイルかけれる?
見たところLLVM通すから行けそうだけど

650デフォルトの名無しさん2018/02/21(水) 15:35:13.89ID:HWbyxxJS
実用で使うのはまだ怖いけど、遊びで触る分にはちゃんと動くよ。
javaの標準パッケージが全く使えないから、jvmで動かす前提で作ってあるクラスだのライブラリだのが動かないという辛さはある。

651デフォルトの名無しさん2018/02/21(水) 16:03:44.92ID:wwQ+gY6z
javaのパッケージ使えないんならわざわざJVM言語使う価値なんかないわwさよなら〜

652デフォルトの名無しさん2018/02/21(水) 16:13:56.98ID:4d1xezjM
うん。はっきり言って現状ではこれを使うメリットが何一つ思い浮かばないよ俺も。

653デフォルトの名無しさん2018/02/21(水) 17:59:59.69ID:ftdNQJg9
地味にアップデートされてるからJBが飽きなければそのうち実用レベルになるかもねえ

654デフォルトの名無しさん2018/02/21(水) 18:05:11.04ID:2C7myRiq
それなりの標準ライブラリはあるんでしょ?まだないの?(ないわけないか。なければ Hello world も出せないもんな)

655デフォルトの名無しさん2018/02/21(水) 18:28:14.61ID:aopUu534
ありがとう。
なるほどまだ様子見しとくわ
Javaの標準パッケージ動かないの辛いね

656デフォルトの名無しさん2018/02/21(水) 18:37:05.98ID:KLOfXDKN
>>652
はいキチガイ

657デフォルトの名無しさん2018/02/21(水) 18:56:30.68ID:sG9Uh+s7
>>656がメリットを説明してくれる模様w

658デフォルトの名無しさん2018/02/21(水) 19:15:48.38ID:CION/kfn
この言語意味不明になってきた。
class Test {
 var str: String
  get() = field
  set(value) { }
 constructor() {
  str = "あいう"
 }
}
val t = Test()
普通にstrがnullになる

659デフォルトの名無しさん2018/02/21(水) 19:17:58.58ID:CION/kfn
セカンダリコンストラクタでstrのbakcingFieldにアクセスできないの??
 constructor() {
  str = "あいう" // これはsetter経由のプロパティアクセス
 }

660デフォルトの名無しさん2018/02/21(水) 19:21:36.71ID:ftdNQJg9
>>656
現状でこれ使ってハッピーなことがあるなら教えてくれw

661デフォルトの名無しさん2018/02/21(水) 19:23:37.72ID:ftdNQJg9
>>658-659
そのコードの意図がよく分からないんだけど、何がしたいの?ゆ

662デフォルトの名無しさん2018/02/21(水) 19:30:46.29ID:CION/kfn
>>661
意図はないけど、null安全とかいっておきながらkotlin側だけでnull入るコード書けるのまずいような気がする。
いや、プロパティの初期化方法がうざくて色々調べてたら気づいただけ。

663デフォルトの名無しさん2018/02/21(水) 19:35:19.91ID:CION/kfn
プロパティ宣言すると初期値与えろってうるさいんだけど、うるさいのはいいんだけど初期値の与え方が
val str: String = プロパティイニシャライザ
プロパティイニシャライザ以外、bakcingFieldに直接与える方法ないの??
>>659だって、初期値与えろってコンパイルエラーでるから、セカンダリコンストラクタに
str = "あいう" // これはsetter経由のプロパティアクセス
書いたんだけど、setter経由のプロパティアクセスだとsetterが>>658のようになってるって初期値実際与えられてないし・・

664デフォルトの名無しさん2018/02/21(水) 19:38:04.92ID:CION/kfn
>書いたんだけど、setter経由のプロパティアクセスだとsetterが>>658のようになってるって初期値実際与えられてないし・・

>書いたんだけど、setter経由のプロパティアクセスだとsetterが>>658のようになってるいじわるコードだと初期値実際与えられてないし・・
に修正

665デフォルトの名無しさん2018/02/21(水) 19:44:04.71ID:ftdNQJg9
そういうことね
確かにこれならsetterの部分でコンパイルエラー出て欲しい気がするな
帰ったらドキュメント舐め回してみるか

666デフォルトの名無しさん2018/02/21(水) 22:17:43.95ID:mU+xwBkv
>>658
lateinintつけないでコンパイル通ってしまうなら、Kotlinコンパイラのバグの可能性も...

667デフォルトの名無しさん2018/02/21(水) 22:24:25.01ID:mU+xwBkv
>>666は勘違いでした。申し訳ない。
>>658
多分あまりにも悪意に満ちた常人なら間違え内容のない契約プログラミング違反だから、
そこまでは面倒を見られないということかも。

668デフォルトの名無しさん2018/02/21(水) 22:33:20.79ID:A2iqRMA5
悪意の無い初心者がめちゃくちゃ書いてもちゃんと面倒見てくれるべきだと思う

669デフォルトの名無しさん2018/02/21(水) 23:05:16.86ID:CION/kfn
null安全の導入とともに変数は宣言時に初期値を与えなきゃいけなくなって、
ローカル変数は宣言時に与えなきゃいけないけど、インスタンス変数は宣言時または
コンストラクタ内で与えればOKなんだけど、
backingFieldを持つプロパティと相性悪かった?ってことかな。

backingFieldを持つプロパティはプロパティイニシャライザを与えるか、
コンストラクタ内でbackingFieldに直接初期化するという条件を付けくわえないとだめ?

field:str = "あいう" // コンストラクタ内でのみ使えるbakckingFieldにアクセスする専用構文の導入が必要 か
str = "あいう” // コンストラクタ内でのプロパティへの代入はsetterは経由しないとかの条件が必要

670デフォルトの名無しさん2018/02/22(木) 00:40:47.03ID:P3OwyHQx
バグ相当だと思う

初期化(setter呼び出し)の有無は判定出来ているのだから
コンパイルエラーにするのが難しいなら
その直後にそのプロパティのBacking Fieldがnullだったら
KotlinNullPointerExceptionを投げる処理を暗黙的に追加すべき

671デフォルトの名無しさん2018/02/22(木) 00:42:25.58ID:P3OwyHQx
コンパイラor言語仕様のバグって意味ね

672デフォルトの名無しさん2018/02/22(木) 01:34:10.26ID:2g+h2XZc
null安全の導入->非nullableのクラス型のデフォルト値なんてないから、変数は必ず初期化する
必要がある->(この再、nullable、非nullable関係なく全変数初期化するように)

未初期化の変数がコンパイラエラーにならないんて、これが言語仕様なら
仕様がクソだったってことだな(さすが、適当に作った言語ってことに)。
コンパイラのバグであることを祈ろう。

6736662018/02/22(木) 06:49:37.65ID:W5l1Fr+S
>>658は、Test()でconstructor()が呼ばれないことについて
エラーも警告も出ないことも問題かもしれない。
>>672
Javaで1回しか代入できないフィールドを作るのにsetterに渡された値を捨ててしまうことは
手法としては考えれられなくはないから、バグではなく仕様かも。
逆にチェックを厳しくし過ぎると出来そうなことができなくなる罠も出てくるから
完璧は無理かと。
Kotlin自体「実用的な」範囲でバランスをとったというコンセプトだし。

6746662018/02/22(木) 06:57:22.88ID:W5l1Fr+S
>>673
の一つ目は勘違いでした。
Kotlinは便利だけど、いくつかの規則は言語仕様でなく契約に基づいていて
契約違反のコードは勘違いを起こさざるを得ないと言い訳する...orz

675デフォルトの名無しさん2018/02/22(木) 07:31:42.26ID:tIZ7FSiP
C#でいいじゃん

676デフォルトの名無しさん2018/02/22(木) 07:39:36.87ID:HpXxCMc4
>>674
いや、この件は普通にコンパイラの仕様バグだと思うからissue上げて来なよ

677デフォルトの名無しさん2018/02/22(木) 07:44:53.50ID:HpXxCMc4
一回しか代入したくないならセッターの中にそういう処理を書けばいいだけだし、
非NullableなのにNullが入る状態でコンパイルできるのはどう考えてもバグでしょ

678デフォルトの名無しさん2018/02/22(木) 07:45:17.47ID:P3OwyHQx
>>673
そういう手法のときは内部フィールド側はNullableになっているべきじゃないかな
通常ケースの一つとしてnullがあるパターンなわけだから

private var strF: String? = null
var str: String get(){return strF ?: ""} set(value) { }

679デフォルトの名無しさん2018/02/22(木) 09:29:54.25ID:tZO46ghF
setterを空にしたらバッキングフィールドへの代入は永遠にされないのでは?
外部からバッキングフィールドへの代入ってできないよね?
(getterで値を変更するカウンターみたいなやつは別として)。

680デフォルトの名無しさん2018/02/22(木) 21:30:53.59ID:MQzOZIuj
Nullableでないプロパティのsetterがnullの状態で呼ばれることがあるって考えるとなんか気持ち悪いな
俺の感覚だとsetterが呼ばれた時点でフィールドは初期化されていて欲しいしフィールドの初期化にsetterは使って欲しくない

681デフォルトの名無しさん2018/02/22(木) 22:55:00.07ID:4ek3nBtk
JRubyよりはええんか?

682デフォルトの名無しさん2018/02/23(金) 00:50:16.39ID:U4AoY/IO
>>658の var str : String の部分を var str = "aaa" みたいに書くと var なのに str に何を代入しても
中身が"abc"のまま変化しないプロパティが完成w

683デフォルトの名無しさん2018/02/23(金) 00:50:44.77ID:U4AoY/IO
間違えた。"abc"じゃない"aaa"な。

684デフォルトの名無しさん2018/02/23(金) 07:49:04.02ID:bsuGQjVb
>>682
ワロタ
嫌な会社を辞めるときにテロとしてそういうコード残しておくイタズラとかできそう
それはそうとnullableじゃないのにnullになりうるセッターがコンパイル通るのはやっぱおかしいよな
そんなんする奴がいるのかって話ではあるが

685デフォルトの名無しさん2018/02/23(金) 08:31:33.24ID:nqFe2RWJ
githubにあるkotlinのプロジェクトはissuesのリンクがないや
どこに報告すればいいんだ

686デフォルトの名無しさん2018/02/23(金) 08:54:38.23ID:MOvRrowf
>>685
なぜREADMEを読まない…

687デフォルトの名無しさん2018/02/23(金) 14:54:59.97ID:0k9d4/AB

688デフォルトの名無しさん2018/02/23(金) 18:54:32.34ID:fUBBLv0N
こりゃダメだ
C#使おっと

689デフォルトの名無しさん2018/02/23(金) 19:22:20.80ID:tkkK8G2q
>>687
えぇ…これ仕様通りなん?だとしたら糞じゃね?

690デフォルトの名無しさん2018/02/23(金) 20:44:31.66ID:Py5a3myD
>>688
C#はこういうこと起きないの?
てか、そもそも同じような形式のプログラム作れるの?

691デフォルトの名無しさん2018/02/23(金) 21:13:42.52ID:8lqriKW0
C#はそもそもnull安全じゃないから出てくること自体おかしい

692デフォルトの名無しさん2018/02/23(金) 21:26:34.63ID:i7MOfoRF
8.0ではoptinでnull安全にできるようになるんじゃなかったけ。まあ、でもmicrosoftはこんなポカしないと思うけど。

693デフォルトの名無しさん2018/02/23(金) 22:05:57.26ID:R3lraTlN
オプティン…

694デフォルトの名無しさん2018/02/23(金) 22:13:05.72ID:YiHajEe6
・セカンダリコンストラクタが存在する
・代入して初期化してる(ように見える)プライマリコンストラクタかセカンダリコンストラクタがある
この2つを満たすとコンパイル通っちゃうのかな
https://paiza.io/projects/78ZAW5fM_jNEyfhRPD5VbA

695デフォルトの名無しさん2018/02/23(金) 22:28:48.21ID:8lqriKW0
>>694
こりゃコンパイラのバグ説が濃厚だな

696デフォルトの名無しさん2018/02/23(金) 22:46:50.15ID:ZKkKvK7/
完全に趣味でSwift触り始めたんだけど、ことりんと似すぎてて脳の切り替えが大変

697デフォルトの名無しさん2018/02/23(金) 23:32:19.57ID:gu5jD4u6
setterがNOPだからでしょ
何もおかしくないと思うんだが

698デフォルトの名無しさん2018/02/23(金) 23:51:24.69ID:pZoCSvCU
>>697
Javaなら何もおかしくないけど、これはkotlinなんですよ

699デフォルトの名無しさん2018/02/24(土) 00:23:17.37ID:KMKYwria
あー、ごめんごめん、nullableじゃないのにってことね

700デフォルトの名無しさん2018/02/24(土) 06:43:01.61ID:geSYf0sR
SwiftではOptionalよん

701デフォルトの名無しさん2018/02/24(土) 06:47:11.68ID:H2lSL8Bq
そこら辺の名称も統一してくれたらよかったのに

702デフォルトの名無しさん2018/02/24(土) 08:17:33.01ID:vmshfWHt
引数や戻り値の属性(アノテーション)としての出自でNullable (@Nullable)
型引数を持つデータ構造として出自でOptional (Optional<T>)

703デフォルトの名無しさん2018/02/24(土) 08:21:38.91ID:gsJVlH30
だから何?

704デフォルトの名無しさん2018/02/24(土) 08:32:56.79ID:vmshfWHt
単なる経緯にだからも何も無いんだけど

705デフォルトの名無しさん2018/02/24(土) 09:18:53.65ID:b9ViFkCo
Optionalではアンラップが必要で、Nullableでは不要

706デフォルトの名無しさん2018/02/24(土) 15:32:03.48ID:QRpOEI48
つまりOptionalは神Nullableは糞

707デフォルトの名無しさん2018/02/24(土) 15:33:06.32ID:QRpOEI48
間違えた逆だNullableは神Optionalは糞

708デフォルトの名無しさん2018/02/24(土) 16:29:10.25ID:XDApard5
神と糞は種類が違うだろ

709デフォルトの名無しさん2018/02/24(土) 16:55:50.73ID:La3HIAz8
Xamarin程の糞はない

710デフォルトの名無しさん2018/02/24(土) 20:13:00.64ID:geSYf0sR
Kotlinではnullにならない型など存在しないのだ、がっはっは

711デフォルトの名無しさん2018/02/24(土) 23:25:19.26ID:QE7g/pJn
神は糞である。

712デフォルトの名無しさん2018/02/25(日) 06:02:39.69ID:z/Jlakx1
糞は紙で拭け

713デフォルトの名無しさん2018/02/25(日) 10:33:42.84ID:4s22ePtw
Kotlinインアクションの尼評価低いなと思ったら理由が「難しい」ってw

714デフォルトの名無しさん2018/02/25(日) 10:54:15.05ID:skC5U3zO
やっぱGroovy in Actionだろ、GradleはGrooovyなんだぜぇ

715デフォルトの名無しさん2018/02/25(日) 11:44:58.69ID:XjF3qDop
こんな本が出てたんだな。

Androidアプリ開発の教科書
http://amzn.asia/59lxVwl

716デフォルトの名無しさん2018/02/25(日) 11:46:33.02ID:XjF3qDop
あ、Kotlin で検索したら出てきた本だけど Kotlin とは限らないみたいだな。すまん。

717デフォルトの名無しさん2018/02/25(日) 11:50:17.94ID:XjF3qDop
すまん。Kotlin の K の字も出てこないな。忘れてくれ。

718デフォルトの名無しさん2018/02/25(日) 12:40:42.33ID:pcyqC+jB
Kotlinイン・アクション、2017

Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

せっかく太郎が、イン・アクションを参考にして、わかりやすく書いたのだから、
日本人は、太郎本を読んだ方がよい

719デフォルトの名無しさん2018/02/25(日) 13:02:41.55ID:OHKw3fir
情報量はインアクションの方が多いから、わざわざ薄めた本を買う必要なんてないよ

720デフォルトの名無しさん2018/02/25(日) 13:29:07.46ID:V/Ygd9gi
>>718
お前はスッキリをすすめてろよ

721デフォルトの名無しさん2018/02/25(日) 14:16:36.00ID:4s22ePtw
Kotlin本といえば今のところインアクションとスタートブックの2択だと思うけど、
「難しい」って理由でレビュー評価下げるのはどうよ?と思ったんで、難しい以外に
インアクションで問題点ある?
バージョンが古いとか?

722デフォルトの名無しさん2018/02/25(日) 14:31:03.18ID:VQCl2C19
※716
Androidの入門本なんてAndroid搭載機種の種類と同じくらい大量に出てるのになぜわざわざそれを貼ろうと思ったのか

723デフォルトの名無しさん2018/02/25(日) 14:41:45.45ID:XjF3qDop
>>722
先に書いた通り、AmazonでKotlinで検索して出てきたため。

724デフォルトの名無しさん2018/02/25(日) 15:09:27.72ID:Ydc/tL+D
電子書籍でレイアウト固定だと買う気しない

725デフォルトの名無しさん2018/02/26(月) 08:03:23.98ID:RZjRtr5i
知らんけどkotlinのandroid入門書なんてもう山ほど出てるんちゃうの?まだjavaばっかなの?

726デフォルトの名無しさん2018/02/26(月) 08:23:30.09ID:t40oU2wX
まだ一冊しかないのでは?

727デフォルトの名無しさん2018/02/26(月) 08:27:44.65ID:RZjRtr5i
そうなのか、意外と動き遅いんだな

728デフォルトの名無しさん2018/02/26(月) 08:56:28.62ID:qQ1Da7Hp
本で勉強する時代じゃないからね

729デフォルトの名無しさん2018/02/26(月) 09:20:17.57ID:G+urRbGd
細切れ情報を探すのはやだな。レベルも方針もバラバラだし。
良書があるなら本がいい。

730デフォルトの名無しさん2018/02/26(月) 09:34:26.29ID:/jWICelY
まあ、AndroidでKotlin使うのは増え続けるだろうから何れ本も増えるだろう。

731デフォルトの名無しさん2018/02/26(月) 09:43:22.22ID:CZmy/XEe
本は中古やで何冊かあったよ、まだ高かったけど
正直Pythonは失敗だったと思う

732デフォルトの名無しさん2018/02/26(月) 10:09:15.19ID:G+urRbGd
pythonは糞本で良書が埋もれちゃってる

733デフォルトの名無しさん2018/02/26(月) 10:47:30.45ID:/j3wCSg3
Null Objectパターン流行るといいなあ。

734デフォルトの名無しさん2018/02/26(月) 13:51:07.53ID:Mu1MCm3E
>>732
流行った言語は自動的にそうなる。

735デフォルトの名無しさん2018/02/26(月) 17:53:54.70ID:i6+hAPO4
>>733
流行るも何もgof23パターンのうちの一つだぞ

736デフォルトの名無しさん2018/02/26(月) 18:03:06.16ID:3e/qclCH
Null Objectはgof外でしょ

737デフォルトの名無しさん2018/02/26(月) 18:15:26.27ID:i6+hAPO4
>>735
すまぬ。
どうやらボケが始まったようだ…

738デフォルトの名無しさん2018/02/26(月) 18:44:34.21ID:3e/qclCH
気にするな、禊としてXamarinのライセンス買ってこい

739デフォルトの名無しさん2018/02/26(月) 18:51:59.91ID:3Mt4XsWV
買わない買わない

740デフォルトの名無しさん2018/02/26(月) 19:46:08.16ID:FSYyOpBd
>>721
本を読んだけどどっちもよかったよ。
ただ読み手のスキルで理解力に差があるからそこで評価が分かれてるのかも。

741デフォルトの名無しさん2018/02/27(火) 10:02:27.46ID:GEmGj4yT
IntelliJの変換機能使ってシコシコKotlinに変換してるけどstatic無いのがウザくなって来た
Swiftにはあるのにー

742デフォルトの名無しさん2018/02/27(火) 12:16:20.20ID:pU97M93t
>>741
コンパニオンは?

743デフォルトの名無しさん2018/02/27(火) 18:56:17.20ID:9XUAnYvD
自動変換使ったら普通にcompanion objectにならなかったっけ

744デフォルトの名無しさん2018/02/27(火) 20:07:07.98ID:VEiALCIH
スーパーコンパニオンがいいです

745デフォルトの名無しさん2018/02/27(火) 23:14:15.97ID:m5Iw3K9X
自動変換してもコンパニオンにならなかったから、シコシコ変えてる

746デフォルトの名無しさん2018/02/27(火) 23:34:21.25ID:l+pACPTY
Android stuiosって糞重いのな
Xcodeの比じゃなかったわ

747デフォルトの名無しさん2018/02/27(火) 23:39:03.53ID:oVWfwCMw
Core i7、メモリ32GBだけど、コーディングに支障があるほど重いとは感じないかな

748デフォルトの名無しさん2018/02/28(水) 00:05:50.05ID:KPu2dHe+
ノート用のi5、8Gでもサクサク動くぞ

749デフォルトの名無しさん2018/02/28(水) 01:54:55.83ID:SwOhtkGH
基本xcodeの方が重くない?

750デフォルトの名無しさん2018/02/28(水) 04:32:16.89ID:ifAjmiIg
Android stuios...

751デフォルトの名無しさん2018/02/28(水) 06:49:11.80ID:qqsPLA0F
明らかにxcodeの方が重い

752デフォルトの名無しさん2018/02/28(水) 06:51:00.64ID:qqsPLA0F
あ、Android StudioじゃなくてAndroid stuiosの話なのか
それなら知らんわ

753デフォルトの名無しさん2018/02/28(水) 07:13:17.29ID:hln4Ed73
VisualStudioはサクサク動くね

754デフォルトの名無しさん2018/02/28(水) 08:34:11.55ID:pTBSmEfK
Android Studioはエミュレータの起動が激重

755デフォルトの名無しさん2018/02/28(水) 08:51:39.92ID:CR0DdEON
お前のPCが糞なんだろ

756デフォルトの名無しさん2018/02/28(水) 09:34:38.82ID:3IEGD0z0
そういやエミュレータは遅いな。あれ速くならんもんかね?実機に繋いじゃうしかないか?

757デフォルトの名無しさん2018/02/28(水) 11:19:49.30ID:fhD/c/L7
そんなにおもいか?

758デフォルトの名無しさん2018/02/28(水) 12:23:44.87ID:pWBZNbli
その部分はXcodeも糞重いからまあしゃあない

759デフォルトの名無しさん2018/02/28(水) 13:05:00.32ID:/o1cB3Jz
お前の収入がまともなPCも買えないほど低いだけ

760デフォルトの名無しさん2018/02/28(水) 15:32:06.67ID:nKEiX8dA
Flutterが話題になってるけど、Dartなんだよなあ、、

761デフォルトの名無しさん2018/02/28(水) 15:32:21.47ID:nKEiX8dA
Kotlinならよかったのに

762デフォルトの名無しさん2018/02/28(水) 15:59:23.70ID:/fCVXMT7
やっぱ金掛けてゲーミングPCにしないといかんかね

763デフォルトの名無しさん2018/02/28(水) 17:02:46.79ID:Dh2+122Q
何の話ししてるんだ

764デフォルトの名無しさん2018/02/28(水) 17:05:13.06ID:Dh2+122Q
IntelliJファミリーのIDEが不自然に重い時はプラグインを疑った方が良い
もしくは単純にindexingか何かをしてるだけか

とりあえず2013年モデルでメモリ8GBのMBPでもサクサク動く

765デフォルトの名無しさん2018/02/28(水) 21:48:31.62ID:CR0DdEON
さっさとまともな収入得られる会社に転職しろ

766デフォルトの名無しさん2018/03/01(木) 05:22:15.58ID:cE1p2NGM
googleさんの本命はkotlinじゃなくてflutterのDartだったってこと?

767デフォルトの名無しさん2018/03/01(木) 06:15:15.24ID:uqwlFRYM
いや、あの会社がプログラミング言語を開発するのは趣味みたいなもんだから。

768デフォルトの名無しさん2018/03/01(木) 11:37:02.64ID:tn3lzpGs
飽きたら捨てるでしょ

769デフォルトの名無しさん2018/03/01(木) 13:21:29.38ID:a0FtR1fD
女ったらし

770デフォルトの名無しさん2018/03/01(木) 13:52:18.31ID:rGfsNRkK
Goってどこ行ったんだよ

771デフォルトの名無しさん2018/03/01(木) 14:25:40.30ID:a0FtR1fD
トイレ

772デフォルトの名無しさん2018/03/01(木) 16:56:43.31ID:/5bgAPbJ
有名どころだけでもGASとgoとDartとあるからな
統一しろや

773デフォルトの名無しさん2018/03/01(木) 17:02:42.69ID:SIvaL2Ua
なんかgoogleって統一感無いよなー。
dart捨てたと思ってたのに、このタイミングで復活させるとかさ。ならchromeに予定通りvm載せろや

774デフォルトの名無しさん2018/03/01(木) 17:40:32.49ID:JNnNxKxo
もうどれにも移行せずJavaに留まるのが一番

775デフォルトの名無しさん2018/03/01(木) 18:09:19.76ID:cE1p2NGM
>>773
それが望ましいな。まぁ、Flutter+Dartが成功したらchromeにもDartVM搭載復活とかあるかもね。
それで、JavaScript絶滅に追いやってほしいわ。
今どきの言語ならなんえり好みしないからフロントエンドからJavaScriptを絶滅に追いやってほしい。

776デフォルトの名無しさん2018/03/01(木) 18:12:11.07ID:uQkXDe7H
未だにKotlinの実務経験のないやつは完全失業ざまあwww

777デフォルトの名無しさん2018/03/01(木) 18:13:28.77ID:tn3lzpGs
それはない

778デフォルトの名無しさん2018/03/01(木) 18:26:37.33ID:ABErgR5Z
>>774
COBOLだってまだ生きてるしね

779デフォルトの名無しさん2018/03/01(木) 18:48:56.63ID:cE1p2NGM
つか、あれ、ラムダ式の中で値返すときretrunとかキーワードつけないのかー
ふーんって思ったけど、制御までreturnするんじゃないのか・・
{
 if (条件式) 値1
 その他の文
 値2
}
で、if文の条件式が真の時、値1が返ってreturnするのかと思ったらその後も実行されるのか・・

780デフォルトの名無しさん2018/03/01(木) 18:56:24.56ID:cE1p2NGM
あれ、どうやって値返すんだよん。if else使いたくないんだけど。

781デフォルトの名無しさん2018/03/01(木) 19:05:41.78ID:uqwlFRYM
>>779-780
太郎本でも読むことをお勧めする

782デフォルトの名無しさん2018/03/01(木) 19:22:21.90ID:SIvaL2Ua
>>775
jsを、撲滅ってESの最新仕様追いかけなよ。
悪くないから

783デフォルトの名無しさん2018/03/01(木) 19:23:41.14ID:cE1p2NGM
コンパイルエラーがでるからそこらへん適当にやっててもなんとかなったけどww。
真面目に考えるとどうなってんだこれww
今までコンパイルエラーが消えるように適当に例えば、
fun testAsync(): Deffered<String> {
 return async {
  lock.withLock {
   "ABC"
  }
 }
}
むしろ、retrunを付けると怒られたからこのままにしたけど。return@asyncってラベルつけるればいいのか。
ラベルつけない場合はどうなってんだこれ。

784デフォルトの名無しさん2018/03/01(木) 21:08:11.92ID:lRGki80K
inline の場合は return の意味がちょっと変わっちゃうんじゃない?

785デフォルトの名無しさん2018/03/02(金) 09:57:27.48ID:cO6anSKk

786デフォルトの名無しさん2018/03/02(金) 19:55:39.45ID:UK6+GFm3
>>785
ありがとう。ちょっと前に話題になってたのね。
つか、前に教えてもらったhttp://jetbrains.github.io/kotlin-spec/
にそれに関する事のってねぇな?

DartだってECMAでしっかりした仕様書になってるのに、
仕様書がいまだにこんなレベルなのにAndroidのFirst Class Languageにするなんて
Google何考えてんだか・・

787デフォルトの名無しさん2018/03/02(金) 20:38:44.95ID:UK6+GFm3
後、
https://ideone.com/RIMEHi
で、
val t = Test()
t.update()
にすると、propertyが変更されないっぽいんですけど、なんででしょうか??
Android環境でコルーチンを使ってます
よろしくお願いします。

788デフォルトの名無しさん2018/03/02(金) 20:49:08.27ID:UK6+GFm3
あれ、そういや、>>787でfieldってラムダ式の中から変更できるの??

789デフォルトの名無しさん2018/03/02(金) 21:31:57.84ID:ypGJ9h8+
ダメだこの言語…はやく何とかしないと…

790デフォルトの名無しさん2018/03/02(金) 21:56:02.44ID:Cxn2x5kD
え、Androidやろうと思って今ならKotlinかなって思って調べてたのに。

791デフォルトの名無しさん2018/03/03(土) 00:14:44.42ID:xuTznB0o
>>787
Androidやコルーチンであることは直接の関係が無く
インラインでないラムダとprivate setの組み合わせが影響しているようだ

https://ideone.com/aLit2X
↑これの「4」が出力されるケースと同じでsetの処理を通らずに
バッキングフィールドに直に代入されてると思う

バグか仕様か断言はしないけど、多分コンパイラのバグじゃないかな

792デフォルトの名無しさん2018/03/03(土) 00:41:15.44ID:AQTy3jz6
>>791
うぉぉ。ありがとう。コルーチン関係なかったのか。
まだ、インラインとか勉強してなくてさっぱりだけどw
この前の>>658も俺だし、
真面目にkotlinで開発しようと思って2週間ぐらいでこのザマとか
なんなのkotlinの品質。笑えないな。

793デフォルトの名無しさん2018/03/03(土) 00:53:35.09ID:X3kFcdUX
この前のもだけど誰かバグとして報告してあげて…

794デフォルトの名無しさん2018/03/03(土) 01:02:48.20ID:AQTy3jz6
そうだよね。俺もちょっと前というか昨日もそうだけど、>>787のまた変な動きに出くわして
さすがにうんざりしてIssue Trackerのぞいたけど、前のも報告されてないっぽいよねww

つか、前のやつは単なるコンパイラのバグですまされない仕様修正とか入りそうな予感してるんだけど。
まぁ、現状の仕様ってのがなんだかよくわからんけど。

795デフォルトの名無しさん2018/03/03(土) 07:18:41.68ID:LSyqUS+v
じゃあiOS開発に引きこもってろ

796デフォルトの名無しさん2018/03/03(土) 09:31:08.45ID:xuTznB0o
コンパイラのバグはバグとして直すのが当然だけど

この前のバッキングフィールドの初期化回避や
setter内のインラインでないラムダからバッキングフィールドにアクセスするのを
普通のアプリ開発として書いているのなら止めた方が良いと思う

個人的な感覚では動作以前に「コンパイルが通るべきでは無いコード」だと思うので

797デフォルトの名無しさん2018/03/03(土) 11:42:59.48ID:GRjh9/QH
仕様がないとバグかそうでないか判断できないが仕様はどこにあるんだ?

798デフォルトの名無しさん2018/03/03(土) 20:31:37.81ID:AQTy3jz6
kotlinで3000行くらいすでに書いちゃったけど、とりあえず、private setをpublic setに直して回避・・
しばらくflutterで遊んでくるか

799デフォルトの名無しさん2018/03/03(土) 20:32:59.01ID:usZqppoC
しようがないなあ

800デフォルトの名無しさん2018/03/03(土) 22:17:04.30ID:veVqPwjm
醤油が無いなぁ

801デフォルトの名無しさん2018/03/03(土) 23:44:09.37ID:AQTy3jz6
死なないかなぁ

802デフォルトの名無しさん2018/03/04(日) 14:00:55.46ID:6Lia9zzl
>>658のコードなんかは誰も書かないから発見さえされないし報告されてないんだろうね

803デフォルトの名無しさん2018/03/04(日) 14:48:36.99ID:D9lK5f2H
これからプログラミング初心者がkotlinを触るようになったらそこらへんも色々見つかるだろうね
今はまだほぼ他の言語で経験のある人しか触ってないでしょ

804デフォルトの名無しさん2018/03/04(日) 17:28:56.35ID:PgKwjWml
こんな事いうと荒れるけど、逆だと思う

805デフォルトの名無しさん2018/03/04(日) 18:11:45.65ID:KRR85xAP
>>787
変更されてるんだけど・・・

806デフォルトの名無しさん2018/03/05(月) 12:20:24.87ID:qx4LEZCO
他の言語っていうか、java本業の人しか触ってないでしょ
Androidの入門書もまだほぼjavaばっかだし

807デフォルトの名無しさん2018/03/06(火) 10:59:36.24ID:do1rqvuo
コマンドラインから何も引数付けずに kotlinc 実行するとRPELで動くけどこの時に :help で出てくる :dump bytecode ってなんなの?
名前からしてバイトコードをダンプするであろうことはわかるけど、いつやっても何も出ないんだよね。

808デフォルトの名無しさん2018/03/06(火) 11:00:47.10ID:do1rqvuo
タイプミスった。rpelじゃねえ。replだ。

809デフォルトの名無しさん2018/03/07(水) 22:44:21.36ID:hoG4dIXg
C#のnameof演算子だと、コンパイル時に評価されますけど。
kotlinのプロパテイ参照は結構オーバーヘッド高いですかね??
when (propertyName) {
::property1.name ->
::property2.name ->
}
結構頻繁に評価されるコードなんですよね

810デフォルトの名無しさん2018/03/07(水) 22:49:50.60ID:hoG4dIXg
今は定数でやってんですけど、まだ書き換えるべきが保留してるんです。
when (propertyName) {
"property1" ->
"property2" ->
}
リフレクション絡みのオブジェクトも普通にGC対象?で、その都度生成されたり破棄されたりすると予想しますが。
もちろんアプリ全体のボトルネックになるぐらい影響はないですけど、うーん。踏ん切りがつかん。

811デフォルトの名無しさん2018/03/07(水) 23:45:15.29ID:PbzxZDny
Enumじゃだめ?

812デフォルトの名無しさん2018/03/08(木) 00:35:53.57ID:c/6ZktFW
>>810
ありがとうございます。そうですね。プロパティ増やすたびにEnumの定数も定義する必要がありますが、
パフォーマンス的にはいいですよね。

で、今ちょっと見たことなかったんですけど、Javaのバイトコード見てみたんですけど最適化されてるのか??
メソッド呼び出しされてるのかと思ったら、定数値に置き換えられてました。
最適化のせいなら将来のコンパイラでどうなるかわかりませんけど、とりあえず、普通にプロパティ参照使って
置き換えてます。

ありがとうございました。

813デフォルトの名無しさん2018/03/08(木) 00:36:28.98ID:c/6ZktFW
アンカ>>810じゃなくて>>811でした。すみません。

814デフォルトの名無しさん2018/03/10(土) 08:59:29.43ID:sfqxq7fN
でもそれ結局今日も同じメニューになるよな
たまにはやよい軒行きたいわ、遠いけど

815デフォルトの名無しさん2018/03/10(土) 09:00:01.91ID:sfqxq7fN
すまん誤爆した
Xamarinのライセンス買ってくるわ

816デフォルトの名無しさん2018/03/10(土) 10:27:08.72ID:lbutdI68
俺は大戸屋が多いかな

817デフォルトの名無しさん2018/03/10(土) 10:30:40.87ID:QX6Zsi+5
俺はとんでんかな

818デフォルトの名無しさん2018/03/10(土) 11:04:56.69ID:R1lisrFC
やよい軒の鳥カツ定食なくなったらしいな
あれしか食わなかったのに

819デフォルトの名無しさん2018/03/10(土) 11:07:21.06ID:TTti/WSS
それは残念

820デフォルトの名無しさん2018/03/10(土) 11:15:49.69ID:McxjgaUo
waitとかマルチスレッド機能ぐらい用意しとけよー
結局java.lang.Objectから離れれられんじゃないか

821デフォルトの名無しさん2018/03/10(土) 18:14:12.56ID:a2p+alti

822デフォルトの名無しさん2018/03/10(土) 19:55:04.16ID:Uyf8EqGw
逆に言えばJavaの機能で出来ることをわざわざKotlinで独自に作り直す必要ってあるかね

823デフォルトの名無しさん2018/03/10(土) 20:16:52.67ID:MudN2Ixk
クロスプラットフォーム押していくなら、Javaからある程度離れて開発できないとな。
Kotlin=JVMなら別にいいけど。

824デフォルトの名無しさん2018/03/10(土) 20:22:51.72ID:SpAeFxwP
flutterがKotlinでできるようになったら流行りそうなのになー

825デフォルトの名無しさん2018/03/10(土) 20:34:05.66ID:MudN2Ixk
それが一番だけど、そうなるにはそうなるにはJetBrainsの対応待ってると時間かかりそうだから、
Google買収しないと。IDE全体抱えてもあれだからkotlin部門だけでも

826デフォルトの名無しさん2018/03/10(土) 23:43:23.18ID:MSLQ1fUp
>>822
機能的に同じでも、より簡潔に書けるなら価値ある

827デフォルトの名無しさん2018/03/11(日) 16:57:48.79ID:WkTMJw5e
ゆくゆくはそうなっていくかもしれないけど、まずはJava完全互換を徹底して開発者を集めないとKotlin自体終わっちゃうし

828デフォルトの名無しさん2018/03/11(日) 18:30:40.29ID:kscc7mIG
JVMがLLVM上で開発されるようになれば...

829デフォルトの名無しさん2018/03/12(月) 10:57:45.81ID:b79+6Z0V
日本のことりん本の電書、固定レイアウトなのか・・・

830デフォルトの名無しさん2018/03/12(月) 17:04:59.84ID:nBdxFZ73
ことりん本に限らず図表の多い専門書は基本固定レイアウトが多い

831デフォルトの名無しさん2018/03/13(火) 17:21:36.75ID:UOahYQi3
超初心者で申し訳ありません。
Kotlinスタートブックを購入しました。
REPLを多用してるのでAndroid Studio3.01のREPLで進めたいのですが、
単純に、Kotlin REPLパネル内に、書籍のコード〜 じゃ無いようで、今一つ、Android StudioのREPLの使い方が分かりません。

Android Studio3.01のREPLで、「Kotlinスタートブック」をスターと部分だけでも紹介してる情報なありますでしょうか?

832デフォルトの名無しさん2018/03/13(火) 18:59:50.25ID:UOahYQi3
あれこれして
書籍 P28の最初の一発目

class Rational(val numerator: Int, val denominator: Int)
val half = Rational(1,2)
half.denominator
  と、打ち込んで 実行させたら、2って出来ました〜

Android Studio3.01のREPLを使って、読みすすめそうです。

833デフォルトの名無しさん2018/03/14(水) 10:24:21.09ID:lhJp7l4Q
解決したみたいだからいいけど、
技術書を写経するときはREPLよりもコードをファイルとして残しておいた方がいいと思うよ

読み進めた後にちょっと前に見たところを戻って書き換えたりとかしたくなることが多いと思う

834デフォルトの名無しさん2018/03/14(水) 11:03:31.74ID:fxigNd06
>>833
んなこと言うならテストとして書いたほうがいい。
テストの書き方も覚えるし

835デフォルトの名無しさん2018/03/14(水) 12:56:22.69ID:ccacMMCY
フィードバックが早い方がいいからREPLでいい

836デフォルトの名無しさん2018/03/14(水) 12:57:38.85ID:GCqcIqER
肴は炙った烏賊でいい

837デフォルトの名無しさん2018/03/14(水) 13:03:02.13ID:h74A18Hb
女は無口な人がいい

838デフォルトの名無しさん2018/03/14(水) 13:03:14.15ID:BC3u9Cri
ちょこちょこバージョンアップしてるみたいだけど、リリースノートってあるのかな?

839デフォルトの名無しさん2018/03/14(水) 13:30:40.55ID:+tq877Bs
Swiftのバージョンアップは破壊的変更が多くてダルいらしいけどKotlinはどうなの?

840デフォルトの名無しさん2018/03/14(水) 14:23:01.55ID:Qa1wTICM
いい感じ

841デフォルトの名無しさん2018/03/14(水) 14:24:35.40ID:qG6o0CFM
>>834
まあそれが理想だね
なんにせよ書いたものはちゃんと残しておいた方が良いわ

842デフォルトの名無しさん2018/03/14(水) 14:27:37.09ID:qG6o0CFM
>>835
Android studio使ってるならファイルをデバッグ実行してEvaluate Expressionするのが1番フィードバックが早くて使い勝手も良い

843デフォルトの名無しさん2018/03/14(水) 16:55:28.17ID:+tq877Bs
>>840
そっか。じゃあ使ってみるかなー。

844デフォルトの名無しさん2018/03/14(水) 16:57:41.33ID:OPcLX1QE
>>843
ごくごく初期はなんか色々あったらしいけど、最近は既存のコードが動かなくなるような変更は記憶にないな。
そこらへんはJavaのカルチャーかも

845デフォルトの名無しさん2018/03/16(金) 11:31:44.04ID:vJGNF0d1

846デフォルトの名無しさん2018/03/16(金) 22:10:31.22ID:67qLUtaY
>>845
WantedのPython需要はやっぱAI関連なのかな

847デフォルトの名無しさん2018/03/16(金) 22:32:20.81ID:KxYkqF9B
ライブラリが充実してて扱いが楽だからな

848デフォルトの名無しさん2018/03/16(金) 22:38:51.57ID:KIAzdbMU
>>822
少数でも信者が多ければ上位に食い込みやすいランキングに見える

849デフォルトの名無しさん2018/03/17(土) 14:34:51.60ID:WLSgA37U
>>847
そういうことじゃないだろアホ

850デフォルトの名無しさん2018/03/17(土) 14:41:12.30ID:Ak7laUjo
>>849
じゃあなんだよボケェ

851デフォルトの名無しさん2018/03/17(土) 15:03:30.33ID:fRkZs0aE
>>806
Androidアプリを完全にkotlinで実装するのはまだ苦労する

852デフォルトの名無しさん2018/03/17(土) 23:24:04.39ID:tM7ojUn9
>>851
何で苦労する?
いま、フルKotlinで問題がないから聞いておきたい

853デフォルトの名無しさん2018/03/17(土) 23:25:40.94ID:vXQXG/x7
あ、すまん。ちゃんと読んでなかった。
入門の文脈か

854デフォルトの名無しさん2018/03/18(日) 00:15:28.10ID:JCaBc1o3
ぶっちゃけ、PythonとKotlin覚えときゃ十分だよな
ソース見られてもいいようなちょっとした内部処理はPythonでやって、それ以外はKotlinでやればいいし

855デフォルトの名無しさん2018/03/18(日) 08:08:21.52ID:ewv3muP4
REPLの使い方の説明ないんだよねあの本
ぶっちゃけ最初からいきなりファイル書いたほうがいいと思うわ

856デフォルトの名無しさん2018/03/18(日) 17:30:16.63ID:lc8puhwP
REPL の :dump bytecode が未だにわからん。
分かるやつは居ないのか?

857デフォルトの名無しさん2018/03/18(日) 19:44:41.94ID:9zPyp0Eq
githubで検索してmasterブランチのソース見たけど :dump bytecodeの対象は
ReplFromTerminal 経由で ReplInterpreterが直に持ってるReplClassLoaderで
ReplClassLoaderはaddClassされたものをdumpするみたい

それで addClass探したら HistoryActionsForNoRepeat で
ReplClassLoaderを新たに生成してaddClassしてるのしか見当たらなかった

読み間違いでなければ、addと列挙を異なるReplClassLoaderインスタンスでやってるので
dump bytecodeは常に何も出ないのでは

858デフォルトの名無しさん2018/03/18(日) 19:58:20.59ID:9zPyp0Eq
HistoryActionsForNoRepeatで作られるReplClassLoaderは
topClassLoaderと合わせて3重にネストしてるように見える

ReplClassLoader (HistoryActionsForNoRepeatのメソッド内のclassLoader)
→親 URLClassLoader
→親 ReplClassLoader (状態によってはGenericReplEvaluatorStateのtopClassLoader)
→親 URLClassLoader
→親 ReplClassLoader (ReplInterpreterのclassLoader)
→親 URLClassLoader

makeReplClassLoaderは引数のbaseClassloaderがReplInterpreterだったら
newせず引数をキャストして返した方がいいような気が

859デフォルトの名無しさん2018/03/18(日) 19:59:58.88ID:9zPyp0Eq
× ReplInterpreterだったら
○ ReplClassLoaderだったら

860デフォルトの名無しさん2018/03/18(日) 22:52:30.43ID:R4d/cKLT
>>856
わからないことがあったらコードを読む習慣がある奴と乞食するだけのお前
どんどん差は開いていくんだろうなぁ

861デフォルトの名無しさん2018/03/18(日) 23:20:50.45ID:z+wS9hu5
>>860
ちょっと意地悪だなあ

862デフォルトの名無しさん2018/03/19(月) 04:29:32.92ID:XZfuRe7p
ん?

863デフォルトの名無しさん2018/03/19(月) 09:41:29.40ID:BSZ+YwbD
お!

864デフォルトの名無しさん2018/03/19(月) 09:59:38.75ID:fKuRgkEG
まー、わからないことがあればコード読むのが一番だけど、読まなくても質問の仕方ってもんがあるよな

865デフォルトの名無しさん2018/03/19(月) 10:04:43.65ID:tGex/oOn
どなたかお分かりになる方はいらっしゃいませんか?
だよな、普通は

866デフォルトの名無しさん2018/03/19(月) 10:06:41.70ID:I7PCjnkp
お客様の中にお医者様はいらっしゃいませんか?

867デフォルトの名無しさん2018/03/19(月) 12:12:03.45ID:vFKsd4qZ
>>866
医者ではなくて石屋ですが、お役に立てますか?

868デフォルトの名無しさん2018/03/19(月) 12:27:52.49ID:vZ8Ujcaa
おう、帰っていいぞ

869デフォルトの名無しさん2018/03/19(月) 12:35:26.57ID:BSZ+YwbD
寒いな
春なのに

870デフォルトの名無しさん2018/03/19(月) 12:44:20.63ID:/OLYcrDu
この一言を添えるべきだったな。

「わからない人は書かないでください。」

871デフォルトの名無しさん2018/03/19(月) 13:13:36.50ID:5154S4rE
>>867
16進コードで会話してろ

872デフォルトの名無しさん2018/03/19(月) 14:44:57.52ID:/OLYcrDu
3E 00

873デフォルトの名無しさん2018/03/19(月) 14:51:05.74ID:G/+G0Iaz
18 FC

874デフォルトの名無しさん2018/03/19(月) 15:13:34.00ID:I7PCjnkp
GOTO CA FE

875デフォルトの名無しさん2018/03/19(月) 15:21:12.76ID:vUEuVEml
55 4E 4B 4F

876デフォルトの名無しさん2018/03/19(月) 18:52:34.43ID:blJe5AIS
前々から思ってたけどkotlinスレって加齢臭すごいよな

877デフォルトの名無しさん2018/03/19(月) 19:46:11.90ID:ahbMAcYG
>>874
機械語にハンドアセンブルしなきゃ…

878デフォルトの名無しさん2018/03/19(月) 21:18:34.15ID:C8WhjMTe
あいむふぉーてぃーふぁいぶにやーずおーるど

879デフォルトの名無しさん2018/03/19(月) 21:42:58.40ID:t8aO/EAD
にやーず

880デフォルトの名無しさん2018/03/19(月) 22:15:22.73ID:C8WhjMTe
マグナムドライをマグマグドライと呼ぶほど落ちぶれてはいない

881デフォルトの名無しさん2018/03/20(火) 00:35:07.47ID:J0Id73NT
まぐまぐドライだろ普通。

882デフォルトの名無しさん2018/03/21(水) 09:14:27.60ID:hFmBEg63
Graalって今年のJava11に間に合うのか?
Kotlin/Native(LLVM)なんかよりずっと期待できそうだが。

883デフォルトの名無しさん2018/03/21(水) 10:59:02.18ID:X+3O/rSH
GraalとKotlin/Nativeって用途もコンセプトも被ってないと思うんだけど
LLVMの使い方も逆方向だし

884デフォルトの名無しさん2018/03/21(水) 11:48:06.15ID:mE2iQj+B
Graalがどうとかいう以前に、JVMがないプラットフォームがあるのを何とかして欲しい。
ライブラリも含めてコードをそのまま持ち込んでも動くならともかく、Graalで多言語をサポートしても、
各言語の基本仕様だけでは大したことは出来ない。

885デフォルトの名無しさん2018/03/21(水) 11:52:50.41ID:R6+TRObd
run sometime somewhereだから仕方ない

886デフォルトの名無しさん2018/03/21(水) 12:51:58.11ID:lHxXP1st
Graal

世界大百科事典内のGraalの言及
【聖杯伝説】より

…12世紀末ヨーロッパで顕在化したキリスト教の色濃い伝説だが,起源には諸説あり,
ケルト説話を源とする考えが有力。聖杯Graal(英語はGrail)を扱った最初の作品は
フランスの詩人クレティアン・ド・トロアの《ペルスバルまたは聖杯物語》(1185ころ)。
主人公が漁夫王の城で目にしたふしぎな行列,血の滴る槍と光り輝く聖杯について,
心に抱いた質問を口に出さなかった失敗がすべての発端であった。…

https://kotobank.jp/word/Graal-1233958

887デフォルトの名無しさん2018/03/21(水) 15:19:20.83ID:v2KUYd83
JavaのコードをKotlinにIntteliJさん使って変換すると

fun hogehoge(value: String): Int? {
var value = value

みたいなコードでName shadowedってワーニングがでる
仕方ないのでvar_value = valueみたいに名前変えてんだけど、どうするのがベストかな?これ以外に良い方法あったら教えて

888デフォルトの名無しさん2018/03/21(水) 15:21:46.97ID:MTE55bx9
ウォーニング

889デフォルトの名無しさん2018/03/21(水) 15:34:51.57ID:lHxXP1st
ぅおー

890デフォルトの名無しさん2018/03/21(水) 17:15:46.16ID:F1sATeyh
>>887
Analyze>Inspect Code
結果窓で気に入らないインスペクションを選択しスパナアイコンから設定画面でdisableする

891デフォルトの名無しさん2018/03/21(水) 20:14:30.97ID:v2KUYd83
Inspect Codeをどこをどういじったら変わるのか分からない
プロファイルってやつ?
名前の通りインテリすぎて使いこなせてない・・・orz

892デフォルトの名無しさん2018/03/22(木) 00:14:47.99ID:tdHViWJs
def initialize (number)
@number = number
end

Ruby のクラス内の、インスタンスメソッドの引数を、インスタンス変数に代入するなど、
@ の有無で、判別できるなら良いけど、

関数の引数と、関数内の変数は、共にローカルスコープで、
完全に、変数名もスコープも一致しているから、明らかな間違い

893デフォルトの名無しさん2018/03/22(木) 06:52:19.77ID:cNCV2D+g
>>887
Inspectionを切れば出なくなるしなんなら無視してもいいけど、そのコードは明らかに書くべきでないからコードを直した方が良い。
引数が変数の名前を変えるべき。

894デフォルトの名無しさん2018/03/22(木) 11:14:05.99ID:65GKgG7q
受け取った値に何かしらの加工を加えて返却する関数だと推測するけど
それなら引数の方をrawValueにするとか、変数の方をnewValueにするとか
なんでもいいけどとりあえずそのコードは俺がコードレビューするなら絶対指摘する

895デフォルトの名無しさん2018/03/25(日) 18:43:29.93ID:xXe3d6X4
Javaで
a instanceof CharSequence[]
してた部分はKotlinではどう置き換えたらいいでしょうか?
a is Array<CharSequence>
だとcannot check for instance of erased typeでエラーがでて型チェックができません。

896デフォルトの名無しさん2018/03/25(日) 20:49:47.22ID:sH0z9dIi
うちのKotlinはエラーにならないな

897デフォルトの名無しさん2018/03/25(日) 21:12:24.65ID:xXe3d6X4
https://ideone.com/IAkBb8
あれ、マジですか。Android Studioの方で駄目です。
バージョンって
ext.kotlin_version = '1.2.21'
これかな

898デフォルトの名無しさん2018/03/25(日) 21:41:32.67ID:sH0z9dIi
ああ、aが実際にArray<CharSequence>のときはエラーにならないぽい
Array<*>にするしかないのかなあ

899デフォルトの名無しさん2018/03/26(月) 09:16:05.43ID:NJeKHnKt
if(a is Array<*>) {
b = a.filterIsInstance<CharSequence>().toTypedArray()
}

とかは?

9008992018/03/26(月) 09:17:35.12ID:NJeKHnKt
途中で送っちゃった

JavaのコードからAnyでくる何かの配列を扱いたいときに確かこんな感じで書いた記憶が

901デフォルトの名無しさん2018/03/26(月) 18:15:27.91ID:edzRf7Rx
勉強しようと思いリファレンス読みつつ Koans をやり始めた
最初は var, val や if, for とかかなと思ってたから面食らった

902デフォルトの名無しさん2018/03/26(月) 19:08:10.03ID:mWf0fgjW
小手ぇッ!

903デフォルトの名無しさん2018/03/28(水) 16:51:24.37ID:9zvhOWaV
|Д`) ダレモイナイ・・

904デフォルトの名無しさん2018/03/28(水) 17:07:17.12ID:FSNaWGFp
>>903
オドル ナラ イマノ ウチ

905デフォルトの名無しさん2018/03/28(水) 18:05:16.95ID:rBOzlEgA
|∀`) ことりんするならイマノウチ!!

906デフォルトの名無しさん2018/03/28(水) 23:29:45.23ID:Q7o3nHcv

907デフォルトの名無しさん2018/03/28(水) 23:43:00.81ID:Q7o3nHcv

908デフォルトの名無しさん2018/03/28(水) 23:48:30.41ID:FSNaWGFp
Java訴訟で神託に負けたから、次バージョンからkotlinかな

909デフォルトの名無しさん2018/03/29(木) 15:57:35.16ID:Ld+rPSgg
やっぱりこのスレおっさんしかいないな

910デフォルトの名無しさん2018/03/29(木) 17:12:06.04ID:JAPGCpCV
>>908
Kotolinにしても中身Javaじゃないの?

911デフォルトの名無しさん2018/03/29(木) 17:22:11.83ID:HJyUih4q
中身??

912デフォルトの名無しさん2018/03/29(木) 18:57:11.92ID:xJeXOp0s
Googleが一兆円払ったら今までと同じようにAndroid使っていけるんですかね
Androidがなくなるみたいな話じゃないんですかね

913デフォルトの名無しさん2018/03/29(木) 20:16:40.50ID:5psyvZry
長期的にはAndroidはJavaから離れてSwift化していくと思う
Kotlinはそれまでの繋ぎだろう
構文似てるし

914デフォルトの名無しさん2018/03/29(木) 20:31:18.17ID:UssF7XvX
問題になっているのはAPI仕様なんで、kotlinに変えただけじゃ解決しないよ。
googleは企業間摩擦で割と子供っぽい対応をするところがあるので、神託を敵対買収とか糞味噌展開を期待。

915デフォルトの名無しさん2018/03/29(木) 20:36:18.46ID:QcATsJvj
ねーよ

916デフォルトの名無しさん2018/03/29(木) 20:42:47.29ID:yhEgq3Dh
また控訴してひっくり返らないか?

917デフォルトの名無しさん2018/03/29(木) 20:44:26.62ID:aZVw2F6N
SwiftがKotlin化しろよ

918デフォルトの名無しさん2018/03/29(木) 21:08:11.75ID:yhEgq3Dh
しかしGoogleがフェアユースとか言い出さなければよかっただけなんじゃないかという感じがする。

919デフォルトの名無しさん2018/03/29(木) 22:43:45.47ID:rCpsVAyI
つうかAndroidもOpenJDKに移行するんだからもうその訴訟自体どうでも良くなるんじゃねーの

920デフォルトの名無しさん2018/03/30(金) 01:59:33.03ID:HiRGJtMt
swiftは破壊的変更が多すぎてkotlinが良い

921デフォルトの名無しさん2018/03/30(金) 02:07:24.18ID:RNuPdbRv
俺も今のところkotlin。かといってswiftほとんど知らないわけだが。Apple関係に手を出さない限り必要性がほとんどないよなあれ。
まあ今後変わるかも知れないが。

922デフォルトの名無しさん2018/03/30(金) 03:13:29.93ID:quPTDKQd
フェアユースの方はまだ上告できるけど
ひっくり返る望みはほぼ無いようだから諦めて払うか別の弾持ち出してさらに粘るかだろうね
払うにしても時間たってるから賠償請求額上乗せしてくるんだろうけど
損害賠償だけで使用差し止めは要求してないからAndroidからJavaAPIが消えるという事は無い
はず

923デフォルトの名無しさん2018/03/30(金) 05:37:33.53ID:/yjqGB9g
その前にfuchsiaへの移行を狙ってるはず

924デフォルトの名無しさん2018/03/30(金) 09:23:57.46ID:k/BEaYLJ
kotlinってAndroid関係以外でも需要あんの?

925デフォルトの名無しさん2018/03/30(金) 09:25:44.59ID:z9J7NVX/
Swiftはよくできてると思うが、毎年変更があるのがいけてないな
まぁー、Javaもついこないだ9出たと思ったら、もう10が出てたりするけど

926デフォルトの名無しさん2018/03/30(金) 09:34:51.66ID:MX8csIcp
javaが全部Kotlinに置き換わる
今プログラミング言語で一番使われてるのがjava
つまりKotlin最強になるということだ

927デフォルトの名無しさん2018/03/30(金) 09:38:23.13ID:+3QUYcgW
>>924
googleが主導してるからAndroidになってるだけで
実際何でもできて便利だぞ

928デフォルトの名無しさん2018/03/30(金) 09:49:19.73ID:k/BEaYLJ
>>927
なんでも出来るの定義が分からんけど、Swiftよりいろいろ出来るってこと?

929デフォルトの名無しさん2018/03/30(金) 09:53:15.88ID:TlFsJGTt
Nativeがあるといいけどライブラリどうなるのって問題があるな

930デフォルトの名無しさん2018/03/30(金) 10:10:19.33ID:fmoCCzNn
>>927
JAVAでできることならなんでもできる。サーバーサイドのことでも。
Kotlin/Nativeが1.0になれば、応用範囲はさらに広がる。こっちはいつになるかわかんないけど。

931デフォルトの名無しさん2018/03/30(金) 10:45:56.12ID:KtkxdaJ1
javaでできることしかできない

932デフォルトの名無しさん2018/03/30(金) 10:49:21.30ID:otdYqK6P
CのDLL呼び出しというかWinAPIはJavaより楽にできるの?

933デフォルトの名無しさん2018/03/30(金) 10:58:26.37ID:QjhurjtM
つまり、動かすにはJavaランタイムのインストールが必須ってことですかね
デフォルトでJREが入ってないMacのアプリを作るのはきついかな
ちなみに、SwiftでもWebアプリのサーバサイド書けるし、コマンドラインで手動コンパイルなしで実行するスクリプト的な使い方もできます。REPLもついてくるし

934デフォルトの名無しさん2018/03/30(金) 11:21:20.20ID:iNu2Do3a
>>931
もともと、Javaを拡張するのが大変だから、突破口として、Kotlinという新しい言語を作ったといういきさつなので、Javaでできないこともできる。
最近だとコルーチンとか。

935デフォルトの名無しさん2018/03/30(金) 11:57:59.25ID:MX8csIcp
Swift程の糞はない

936デフォルトの名無しさん2018/03/30(金) 12:17:55.13ID:zd7t6e3u
サーバーサイドをSwiftで作るメリットが何一つ思いつかない

937デフォルトの名無しさん2018/03/30(金) 12:27:18.25ID:TlFsJGTt
そういやKotlinはOpenJDKのJREがあれば動くからAndroid以外ではライセンス気にする必要がないね。

938デフォルトの名無しさん2018/03/30(金) 12:27:33.92ID:QjhurjtM
Swiftプログラマがスキルをそのまま活かせるというメリットがありますよ

939デフォルトの名無しさん2018/03/30(金) 13:51:03.25ID:zGaUw9Ep
>>911
理解が違ってたらすまんけど記述言語がKotlinだとしても中身はJavaにコンバートしてAndroid上で動いてるんじゃないの?という意味。

940デフォルトの名無しさん2018/03/30(金) 14:28:00.49ID:2XCpch6d
>>934
Sandboxの中で何ができるかって文脈じゃないでしょ

941デフォルトの名無しさん2018/03/30(金) 15:46:14.27ID:dI/ml2BM
>>939
コンバートはしてないのでは?直接JVM用のバイトコード出してると思うが。
まあ、それができるならコンバートもできる筈だとは思うけどね。

942デフォルトの名無しさん2018/03/30(金) 16:20:58.01ID:zGaUw9Ep
>>941
ググってみた。ORACLEの特許はJava APIに対してなんだな。
ORACLEの特許はJava全般に渡ると思ってたのでバイトコードに変換しても(俺はこれをコンバートと言ってた。理解出来てなくてすまない)JMVで動いてる事自体が特許にひっかかるんじゃないかと思ってた。
Android OSのソースの特許で揉めてる部分をKotlinに置き換えれば大丈夫って事になるのかな。

943デフォルトの名無しさん2018/03/30(金) 17:31:12.32ID:+3QUYcgW
apple傘下のものをメインにするのはやっぱちょっと怖い
G様なら飽きたら放置だからそこは安心

944デフォルトの名無しさん2018/03/30(金) 19:59:07.85ID:HiRGJtMt
>>936
appleはwordpress使ってるしな

945デフォルトの名無しさん2018/03/30(金) 20:49:12.14ID:5zcIzVPR
>942
androidで使ってたdalvikはレジスタマシンじゃん。
素のjvmならスタックマシンだからそこで特許は無理じゃね?
あとAPIだってそれだけじゃ特許とれんだろ。オラクルも特許侵害は言ってなかったような。

946デフォルトの名無しさん2018/03/30(金) 21:17:15.04ID:5ShTLiJo
プログラミング言語なんて適材適所だからな
少なくとも現時点ではサーバーサイドSwiftなんて選択肢としては悪手の中の悪手だわ
言語機能云々じゃなくて、エコシステム全体で見た時にあえてSwiftを選ぶ理由が本当に何もない

947デフォルトの名無しさん2018/03/30(金) 21:24:20.31ID:VLv20Yes
Xamarin程の糞はない

948デフォルトの名無しさん2018/03/30(金) 21:33:06.98ID:TqB3XhjJ
そんな狂信者召喚呪文を唱えなくてもw

949デフォルトの名無しさん2018/03/30(金) 21:34:00.99ID:NMcWpz2k
>>936
かつてそれと全く同じ理屈でなんでもかんでもJavascriptで作ろうといわれた時代があってだな

950デフォルトの名無しさん2018/03/30(金) 22:10:23.39ID:XwbtKQIj
node,jsはバリバリの現役じゃん

951デフォルトの名無しさん2018/03/30(金) 23:33:20.26ID:z9J7NVX/
かつてじゃなくて今もNode.jsはそこそこ流行ってるじゃん
Electronで作ってるVSCodeとかかなり使いやすいぞ

まー自分は使う気になれんが

952デフォルトの名無しさん2018/03/30(金) 23:58:51.51ID:5zcIzVPR
googleはkotlinやってるのにflutterでdartとか、一つに絞らんのかね?

953デフォルトの名無しさん2018/03/31(土) 01:24:09.27ID:6wN5DSYc
絞ってるだろ
なんか勘違いしてるようだが、Google自身はKotlinもDartも一切使ってないぞ

954デフォルトの名無しさん2018/03/31(土) 02:20:18.15ID:N28z9/rW
結局、ちんこが勃つか勃たないかが重要なんだ
人を見た目で判断してはいけないと理屈で考えたとしても
ちんこが勃つか勃たないかまでは理性でコントロールはできない
だから男の方から女を選ぶ必要がある
女の方からいくら好きだと言って男に言い寄ってもちんこが勃たなければそこで終わりなのだ
男の方から女の方に言い寄る分には問題ない。ちんこが勃つということを表明しているのと同じだからだ
従って、肉食系女子、草食系男子というのはありえないということ

955デフォルトの名無しさん2018/03/31(土) 08:01:27.00ID:xq+IiG37
>>922
アメリカだと巨額な賠償命令が出るときは青天井のことはあるけど、
賠償請求額ってふっかけることが多いから、賠償額の審理が終わったら
「8年も引っ張ってこれだけかよ!」みたいな額だったというオチもありえなくはない。

956デフォルトの名無しさん2018/03/31(土) 09:24:21.22ID:AO5bN52+
>>953
Googleも使ってるだろ

957デフォルトの名無しさん2018/03/31(土) 10:32:10.63ID:8OkV2LA+
>>953
Google製のAndroidのライブラリでKotlin使ってるぞ

958デフォルトの名無しさん2018/03/31(土) 16:49:26.44ID:4s7VNOk8
しかしAPIが著作権の問題で使ってはいけないとなると、その他のOSやライブラリもそうなりかねんわけで、
コンピュータ業界全体が大混乱に陥るのではないか?

以前 Linux でも似たような点が問われたことがあったように思うが、Linux に UNIX と同じシステムコールを
作った場合に関数名が同じとか関連する定数の定義が同じとか、呼び出し方や機能が同じになるわけで、
その部分に著作権があると言われて使用不能になったら互換OSや互換ライブラリは全滅になる。
同じ機能があっても違う呼び出し方しなければいけなくなってしまうからな。同じファイルオープンなのに
open() が使えないなんてなったらかなりアホらしいしもはやそんなもん障害でしかなかろう。
(変換すればいいのでその内なんとかなるだろうが、とても面倒だ)。

959デフォルトの名無しさん2018/03/31(土) 16:55:55.58ID:mHmVXJoy
お前らの作る糞アプリには関係ねえよ

960デフォルトの名無しさん2018/03/31(土) 17:45:23.01ID:jIkIgkDE
>>958
・Wineは使えなくなってしまい、もはや、Windowsの互換OSは未来永劫作れない。
・mingw32 の windows.h ヘッダも著作権的にダメなのかい。
・こうなったのは、アメリカの法制度が悪いから。

世界中のみんなが、アメリカの法律は無視しよう。

961デフォルトの名無しさん2018/03/31(土) 18:17:57.80ID:0VxPNd/B
いやヘッダの著作権は普通にあるぞ
著作権の利用許諾に反するかどうかの問題

962デフォルトの名無しさん2018/03/31(土) 18:41:13.65ID:N28z9/rW
お前らみたいな糞に人権はねえよ

963デフォルトの名無しさん2018/03/31(土) 19:29:14.09ID:qrmwmyS1
  ∧_∧  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< オマエモナー
 (     )  \_____
 │ │ │
 (__)___)

964デフォルトの名無しさん2018/04/01(日) 02:39:43.21ID:t+tZ7rq3
>>958
linuxの場合は参考にしてるのがposixだからまたちょっと事情が異なるんじゃない?
著作権問題でゴタゴタしてたのはBSDですな。
あれはBSD失速の要因の一つだったと思う。

965デフォルトの名無しさん2018/04/01(日) 08:56:07.46ID:h55dGxCd
以前の会社にBSDを好んで使ってる人が結構いたけど、まだ使ってるんだろうか
そんな心配してる私はMacユーザーw

966デフォルトの名無しさん2018/04/01(日) 09:44:08.65ID:GUPc3ba+
>>961
「コメント」などには著作権はあるけれど、関数のプロトタイプ宣言や構造体定義にまで
著作権を認めてしまうと、互換ライブラリ、互換言語処理系などを作ることが全くできなく
なってしまい、人々は困る。

967デフォルトの名無しさん2018/04/01(日) 10:24:40.55ID:x6ZL87kc
>>966
お前は関数のシグネチャを見ただけで互換実装を書けるエスパーなのか?
APIリファレンスや元のソースコードを読んで実装したら、やってることは実質的に盗作だよ

968デフォルトの名無しさん2018/04/01(日) 10:30:02.87ID:GlQ4Mmqm
MacというかNeXTはどちらかというとBSD系だろ

969デフォルトの名無しさん2018/04/01(日) 13:10:03.37ID:GUPc3ba+
>>967
料理本に書いてあるやり方を真似て、別の本を出しても、著作権侵害にはならない判例
がアメリカでは基本になっている。

だから、リファレンスを理解して同じ機能のAPIを作っても著作権侵害にはならないと言うのが
原則だとされる。

970デフォルトの名無しさん2018/04/01(日) 13:13:12.20ID:hcSbVWUA
>>966
今回の判決はその困ったことが起こった、ということ。

971デフォルトの名無しさん2018/04/01(日) 14:56:45.30ID:6Umx8Fig
googleも似たようなAPIを作って差し替えればいいんじゃねえの

972デフォルトの名無しさん2018/04/01(日) 15:15:41.61ID:e1UC7+4i
>>970
だからflutterで仕切り直しをしたいんかな。
ついでにosもlinux辞めて全部自分仕切りにしようってことかね

973デフォルトの名無しさん2018/04/01(日) 15:29:57.78ID:CcB7Toli
だからJavaとかいう臭い言語なんか最初から使ってなきゃよかったんだよ
オラクルとかいう臭い企業が牛耳ってる言語なんか使わないでも
もっと良い言語作れる能力あるのに
使用者が多いからと開発者に媚びた結果がこれだよ

974デフォルトの名無しさん2018/04/01(日) 16:01:17.13ID:6Umx8Fig
DroidKaigi 2018 - コードで見るFlutterアプリの実装 / konifar [JA]
ttps://www.youtube.com/watch?v=sRV_bSdyDjw

975デフォルトの名無しさん2018/04/01(日) 16:50:50.24ID:5WhrWLun
Appleみたいにちゃんと買い取った会社と言語でやるべきだったな

976デフォルトの名無しさん2018/04/01(日) 18:15:05.92ID:2oobpuBw
2003年時点のAndroid社が今の状況を予想できるわけがない

977デフォルトの名無しさん2018/04/01(日) 18:33:04.60ID:zXYiYzGh
Kotlinってのは内部でJavaに変換してるの?

978デフォルトの名無しさん2018/04/01(日) 19:04:07.13ID:ikLL1y/K
はぁ?
バイトコード吐いてんだろが

979デフォルトの名無しさん2018/04/01(日) 19:19:56.66ID:nEv6CmIl
javaのソースコードという意味なら、してない

980デフォルトの名無しさん2018/04/01(日) 19:31:07.79ID:zXYiYzGh
>>978
>>979
ソースコードは変換してないんだ
バイトコード直接吐き出すのは先の著作権問題的にはOKなの?

981デフォルトの名無しさん2018/04/01(日) 20:39:15.00ID:EwuQ9U5u
>>980
駄目だよ。
問題になっているのはjava APIの著作権なので、それがclassライブラリを指しているのかvm仕様を指してるのかわからんが、いずれにしてもkotlinでも状況は一緒。
ただandroidは神託が自らgpl化したopen jdkに移行したから、今後はjavaを使い続けても問題ない、はず

982デフォルトの名無しさん2018/04/01(日) 20:40:21.31ID:F6+rL4W6
>>973
元は臭く無かったよ
ただSunが弱った結果、Oracleに訴訟用の道具として買収されてそうなった

983デフォルトの名無しさん2018/04/01(日) 20:50:46.74ID:zXYiYzGh
>>981
やっぱり駄目なのか
Kotlinに完全移行する覚悟しようかと思ってたけど
OpenJDKで生きながらえるなら考え直そうかな

984デフォルトの名無しさん2018/04/01(日) 20:52:52.55ID:R0oJ/MH9
個人で作るならコトリンのが作りやすいやろ
仕事だとなかなか採用できんね

985デフォルトの名無しさん2018/04/01(日) 21:06:29.17ID:HqgCmSKj
次スレってあるの?

986デフォルトの名無しさん2018/04/01(日) 23:44:28.04ID:rXkEVdGw
>>967
互換実装を作成するプロジェクトはあったのに知らないのかぁ

987デフォルトの名無しさん2018/04/01(日) 23:48:12.01ID:rXkEVdGw
>>982
サンもJAVAの言語自体で儲からんかゴニョゴニョしていたせいで
(ISOなどに渡してしまうなどできただろうに拒んだ)オラクルが
滅茶苦茶やれるようにしてしまったという面もある。

988デフォルトの名無しさん2018/04/02(月) 00:39:40.41ID:C+8pBWNh
>>986
それ実際訴えられて潰されたんだが

989デフォルトの名無しさん2018/04/02(月) 01:10:06.98ID:NWmlauvJ
>>988
潰された例を具体的に元のプロダクト名と互換実装プロジェクトの名前を上げてどうぞ

990デフォルトの名無しさん2018/04/02(月) 01:52:31.51ID:J8SaQrAA
>>985
ある。かなり前に俺が間違えて立てた。w

Kotlin 3
https://mevius.5ch.net/test/read.cgi/tech/1521401186/

991デフォルトの名無しさん2018/04/02(月) 02:18:36.77ID:6c8y0pm0
オラクルなんなん
てかフェアユース不適合なの意味わからん

992デフォルトの名無しさん2018/04/02(月) 08:44:47.98ID:UWLzNtKZ
なんらかの理由でgoogleの足を引っ張りたかっただけだろ
下手したらITの世界全体に致命的なダメージを与えかねないクソ前例を作りやがった

993デフォルトの名無しさん2018/04/02(月) 09:45:31.19ID:OHYuqcPP
>>989
J++
Apache Harmony

994デフォルトの名無しさん2018/04/02(月) 09:47:44.72ID:S0/BFwFL
オラクルが足を引っ張らなかったことなんてほぼ無い

995デフォルトの名無しさん2018/04/02(月) 09:50:00.80ID:NWmlauvJ
>>993
お前何にも理解してないんだな。
J++は互換実装を作ったことが問題になったんじゃねえよ。

996デフォルトの名無しさん2018/04/02(月) 09:55:14.66ID:NWmlauvJ
>>993
しかもHarmonyを出すとか意味わかっていってるのか?

997デフォルトの名無しさん2018/04/02(月) 09:59:01.80ID:OHYuqcPP
いきなり、お前呼ばわりって頭可笑しいと思うの。
先ずはお礼でしょう?

998デフォルトの名無しさん2018/04/02(月) 10:31:08.79ID:Qs9eq6u+
お前呼ばわりは酷いな
せめてお主だろ

999デフォルトの名無しさん2018/04/02(月) 10:54:35.94ID:ij6KZLBS
せめてさんをつけろ
ねえお前さん

1000デフォルトの名無しさん2018/04/02(月) 11:00:15.69ID:k9cTFSac
1000ならXamarinのライセンスを1000個買う

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 152日 10時間 52分 32秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。