Kotlin 2

■ このスレッドは過去ログ倉庫に格納されています
2017/11/01(水) 00:07:43.82ID:jxmKQQAl
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org

前スレ
Kotlin
http://mevius.5ch.net/test/read.cgi/tech/1456505161/
2018/03/02(金) 19:55:39.45ID:UK6+GFm3
>>785
ありがとう。ちょっと前に話題になってたのね。
つか、前に教えてもらったhttp://jetbrains.github.io/kotlin-spec/
にそれに関する事のってねぇな?

DartだってECMAでしっかりした仕様書になってるのに、
仕様書がいまだにこんなレベルなのにAndroidのFirst Class Languageにするなんて
Google何考えてんだか・・
2018/03/02(金) 20:38:44.95ID:UK6+GFm3
後、
https://ideone.com/RIMEHi
で、
val t = Test()
t.update()
にすると、propertyが変更されないっぽいんですけど、なんででしょうか??
Android環境でコルーチンを使ってます
よろしくお願いします。
2018/03/02(金) 20:49:08.27ID:UK6+GFm3
あれ、そういや、>>787でfieldってラムダ式の中から変更できるの??
2018/03/02(金) 21:31:57.84ID:ypGJ9h8+
ダメだこの言語…はやく何とかしないと…
2018/03/02(金) 21:56:02.44ID:Cxn2x5kD
え、Androidやろうと思って今ならKotlinかなって思って調べてたのに。
2018/03/03(土) 00:14:44.42ID:xuTznB0o
>>787
Androidやコルーチンであることは直接の関係が無く
インラインでないラムダとprivate setの組み合わせが影響しているようだ

https://ideone.com/aLit2X
↑これの「4」が出力されるケースと同じでsetの処理を通らずに
バッキングフィールドに直に代入されてると思う

バグか仕様か断言はしないけど、多分コンパイラのバグじゃないかな
2018/03/03(土) 00:41:15.44ID:AQTy3jz6
>>791
うぉぉ。ありがとう。コルーチン関係なかったのか。
まだ、インラインとか勉強してなくてさっぱりだけどw
この前の>>658も俺だし、
真面目にkotlinで開発しようと思って2週間ぐらいでこのザマとか
なんなのkotlinの品質。笑えないな。
2018/03/03(土) 00:53:35.09ID:X3kFcdUX
この前のもだけど誰かバグとして報告してあげて…
2018/03/03(土) 01:02:48.20ID:AQTy3jz6
そうだよね。俺もちょっと前というか昨日もそうだけど、>>787のまた変な動きに出くわして
さすがにうんざりしてIssue Trackerのぞいたけど、前のも報告されてないっぽいよねww

つか、前のやつは単なるコンパイラのバグですまされない仕様修正とか入りそうな予感してるんだけど。
まぁ、現状の仕様ってのがなんだかよくわからんけど。
2018/03/03(土) 07:18:41.68ID:LSyqUS+v
じゃあiOS開発に引きこもってろ
2018/03/03(土) 09:31:08.45ID:xuTznB0o
コンパイラのバグはバグとして直すのが当然だけど

この前のバッキングフィールドの初期化回避や
setter内のインラインでないラムダからバッキングフィールドにアクセスするのを
普通のアプリ開発として書いているのなら止めた方が良いと思う

個人的な感覚では動作以前に「コンパイルが通るべきでは無いコード」だと思うので
2018/03/03(土) 11:42:59.48ID:GRjh9/QH
仕様がないとバグかそうでないか判断できないが仕様はどこにあるんだ?
2018/03/03(土) 20:31:37.81ID:AQTy3jz6
kotlinで3000行くらいすでに書いちゃったけど、とりあえず、private setをpublic setに直して回避・・
しばらくflutterで遊んでくるか
799デフォルトの名無しさん
垢版 |
2018/03/03(土) 20:32:59.01ID:usZqppoC
しようがないなあ
2018/03/03(土) 22:17:04.30ID:veVqPwjm
醤油が無いなぁ
2018/03/03(土) 23:44:09.37ID:AQTy3jz6
死なないかなぁ
2018/03/04(日) 14:00:55.46ID:6Lia9zzl
>>658のコードなんかは誰も書かないから発見さえされないし報告されてないんだろうね
2018/03/04(日) 14:48:36.99ID:D9lK5f2H
これからプログラミング初心者がkotlinを触るようになったらそこらへんも色々見つかるだろうね
今はまだほぼ他の言語で経験のある人しか触ってないでしょ
2018/03/04(日) 17:28:56.35ID:PgKwjWml
こんな事いうと荒れるけど、逆だと思う
2018/03/04(日) 18:11:45.65ID:KRR85xAP
>>787
変更されてるんだけど・・・
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だ。
2018/03/07(水) 22:44:21.36ID:hoG4dIXg
C#のnameof演算子だと、コンパイル時に評価されますけど。
kotlinのプロパテイ参照は結構オーバーヘッド高いですかね??
when (propertyName) {
::property1.name ->
::property2.name ->
}
結構頻繁に評価されるコードなんですよね
2018/03/07(水) 22:49:50.60ID:hoG4dIXg
今は定数でやってんですけど、まだ書き換えるべきが保留してるんです。
when (propertyName) {
"property1" ->
"property2" ->
}
リフレクション絡みのオブジェクトも普通にGC対象?で、その都度生成されたり破棄されたりすると予想しますが。
もちろんアプリ全体のボトルネックになるぐらい影響はないですけど、うーん。踏ん切りがつかん。
2018/03/07(水) 23:45:15.29ID:PbzxZDny
Enumじゃだめ?
2018/03/08(木) 00:35:53.57ID:c/6ZktFW
>>810
ありがとうございます。そうですね。プロパティ増やすたびにEnumの定数も定義する必要がありますが、
パフォーマンス的にはいいですよね。

で、今ちょっと見たことなかったんですけど、Javaのバイトコード見てみたんですけど最適化されてるのか??
メソッド呼び出しされてるのかと思ったら、定数値に置き換えられてました。
最適化のせいなら将来のコンパイラでどうなるかわかりませんけど、とりあえず、普通にプロパティ参照使って
置き換えてます。

ありがとうございました。
2018/03/08(木) 00:36:28.98ID:c/6ZktFW
アンカ>>810じゃなくて>>811でした。すみません。
2018/03/10(土) 08:59:29.43ID:sfqxq7fN
でもそれ結局今日も同じメニューになるよな
たまにはやよい軒行きたいわ、遠いけど
2018/03/10(土) 09:00:01.91ID:sfqxq7fN
すまん誤爆した
Xamarinのライセンス買ってくるわ
2018/03/10(土) 10:27:08.72ID:lbutdI68
俺は大戸屋が多いかな
2018/03/10(土) 10:30:40.87ID:QX6Zsi+5
俺はとんでんかな
2018/03/10(土) 11:04:56.69ID:R1lisrFC
やよい軒の鳥カツ定食なくなったらしいな
あれしか食わなかったのに
819デフォルトの名無しさん
垢版 |
2018/03/10(土) 11:07:21.06ID:TTti/WSS
それは残念
2018/03/10(土) 11:15:49.69ID:McxjgaUo
waitとかマルチスレッド機能ぐらい用意しとけよー
結局java.lang.Objectから離れれられんじゃないか
821デフォルトの名無しさん
垢版 |
2018/03/10(土) 18:14:12.56ID:a2p+alti
>>820
こういうやつ?
http://taro.hatenablog.jp/entry/2013/08/01/223323
2018/03/10(土) 19:55:04.16ID:Uyf8EqGw
逆に言えばJavaの機能で出来ることをわざわざKotlinで独自に作り直す必要ってあるかね
2018/03/10(土) 20:16:52.67ID:MudN2Ixk
クロスプラットフォーム押していくなら、Javaからある程度離れて開発できないとな。
Kotlin=JVMなら別にいいけど。
2018/03/10(土) 20:22:51.72ID:SpAeFxwP
flutterがKotlinでできるようになったら流行りそうなのになー
2018/03/10(土) 20:34:05.66ID:MudN2Ixk
それが一番だけど、そうなるにはそうなるにはJetBrainsの対応待ってると時間かかりそうだから、
Google買収しないと。IDE全体抱えてもあれだからkotlin部門だけでも
826デフォルトの名無しさん
垢版 |
2018/03/10(土) 23:43:23.18ID:MSLQ1fUp
>>822
機能的に同じでも、より簡潔に書けるなら価値ある
2018/03/11(日) 16:57:48.79ID:WkTMJw5e
ゆくゆくはそうなっていくかもしれないけど、まずはJava完全互換を徹底して開発者を集めないとKotlin自体終わっちゃうし
2018/03/11(日) 18:30:40.29ID:kscc7mIG
JVMがLLVM上で開発されるようになれば...
2018/03/12(月) 10:57:45.81ID:b79+6Z0V
日本のことりん本の電書、固定レイアウトなのか・・・
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スタートブック」をスターと部分だけでも紹介してる情報なありますでしょうか?
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を使って、読みすすめそうです。
2018/03/14(水) 10:24:21.09ID:lhJp7l4Q
解決したみたいだからいいけど、
技術書を写経するときはREPLよりもコードをファイルとして残しておいた方がいいと思うよ

読み進めた後にちょっと前に見たところを戻って書き換えたりとかしたくなることが多いと思う
2018/03/14(水) 11:03:31.74ID:fxigNd06
>>833
んなこと言うならテストとして書いたほうがいい。
テストの書き方も覚えるし
2018/03/14(水) 12:56:22.69ID:ccacMMCY
フィードバックが早い方がいいからREPLでいい
2018/03/14(水) 12:57:38.85ID:GCqcIqER
肴は炙った烏賊でいい
2018/03/14(水) 13:03:02.13ID:h74A18Hb
女は無口な人がいい
2018/03/14(水) 13:03:14.15ID:BC3u9Cri
ちょこちょこバージョンアップしてるみたいだけど、リリースノートってあるのかな?
2018/03/14(水) 13:30:40.55ID:+tq877Bs
Swiftのバージョンアップは破壊的変更が多くてダルいらしいけどKotlinはどうなの?
2018/03/14(水) 14:23:01.55ID:Qa1wTICM
いい感じ
2018/03/14(水) 14:24:35.40ID:qG6o0CFM
>>834
まあそれが理想だね
なんにせよ書いたものはちゃんと残しておいた方が良いわ
2018/03/14(水) 14:27:37.09ID:qG6o0CFM
>>835
Android studio使ってるならファイルをデバッグ実行してEvaluate Expressionするのが1番フィードバックが早くて使い勝手も良い
2018/03/14(水) 16:55:28.17ID:+tq877Bs
>>840
そっか。じゃあ使ってみるかなー。
2018/03/14(水) 16:57:41.33ID:OPcLX1QE
>>843
ごくごく初期はなんか色々あったらしいけど、最近は既存のコードが動かなくなるような変更は記憶にないな。
そこらへんはJavaのカルチャーかも
2018/03/16(金) 11:31:44.04ID:vJGNF0d1
https://insights.stackoverflow.com/survey/2018#technology-most-loved-dreaded-and-wanted-languages
2018/03/16(金) 22:10:31.22ID:67qLUtaY
>>845
WantedのPython需要はやっぱAI関連なのかな
2018/03/16(金) 22:32:20.81ID:KxYkqF9B
ライブラリが充実してて扱いが楽だからな
2018/03/16(金) 22:38:51.57ID:KIAzdbMU
>>822
少数でも信者が多ければ上位に食い込みやすいランキングに見える
2018/03/17(土) 14:34:51.60ID:WLSgA37U
>>847
そういうことじゃないだろアホ
2018/03/17(土) 14:41:12.30ID:Ak7laUjo
>>849
じゃあなんだよボケェ
2018/03/17(土) 15:03:30.33ID:fRkZs0aE
>>806
Androidアプリを完全にkotlinで実装するのはまだ苦労する
2018/03/17(土) 23:24:04.39ID:tM7ojUn9
>>851
何で苦労する?
いま、フルKotlinで問題がないから聞いておきたい
2018/03/17(土) 23:25:40.94ID:vXQXG/x7
あ、すまん。ちゃんと読んでなかった。
入門の文脈か
2018/03/18(日) 00:15:28.10ID:JCaBc1o3
ぶっちゃけ、PythonとKotlin覚えときゃ十分だよな
ソース見られてもいいようなちょっとした内部処理はPythonでやって、それ以外はKotlinでやればいいし
2018/03/18(日) 08:08:21.52ID:ewv3muP4
REPLの使い方の説明ないんだよねあの本
ぶっちゃけ最初からいきなりファイル書いたほうがいいと思うわ
856デフォルトの名無しさん
垢版 |
2018/03/18(日) 17:30:16.63ID:lc8puhwP
REPL の :dump bytecode が未だにわからん。
分かるやつは居ないのか?
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は常に何も出ないのでは
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せず引数をキャストして返した方がいいような気が
2018/03/18(日) 19:59:58.88ID:9zPyp0Eq
× ReplInterpreterだったら
○ ReplClassLoaderだったら
2018/03/18(日) 22:52:30.43ID:R4d/cKLT
>>856
わからないことがあったらコードを読む習慣がある奴と乞食するだけのお前
どんどん差は開いていくんだろうなぁ
861デフォルトの名無しさん
垢版 |
2018/03/18(日) 23:20:50.45ID:z+wS9hu5
>>860
ちょっと意地悪だなあ
2018/03/19(月) 04:29:32.92ID:XZfuRe7p
ん?
2018/03/19(月) 09:41:29.40ID:BSZ+YwbD
お!
2018/03/19(月) 09:59:38.75ID:fKuRgkEG
まー、わからないことがあればコード読むのが一番だけど、読まなくても質問の仕方ってもんがあるよな
2018/03/19(月) 10:04:43.65ID:tGex/oOn
どなたかお分かりになる方はいらっしゃいませんか?
だよな、普通は
2018/03/19(月) 10:06:41.70ID:I7PCjnkp
お客様の中にお医者様はいらっしゃいませんか?
2018/03/19(月) 12:12:03.45ID:vFKsd4qZ
>>866
医者ではなくて石屋ですが、お役に立てますか?
2018/03/19(月) 12:27:52.49ID:vZ8Ujcaa
おう、帰っていいぞ
2018/03/19(月) 12:35:26.57ID:BSZ+YwbD
寒いな
春なのに
870デフォルトの名無しさん
垢版 |
2018/03/19(月) 12:44:20.63ID:/OLYcrDu
この一言を添えるべきだったな。

「わからない人は書かないでください。」
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
2018/03/19(月) 15:13:34.00ID:I7PCjnkp
GOTO CA FE
2018/03/19(月) 15:21:12.76ID:vUEuVEml
55 4E 4B 4F
2018/03/19(月) 18:52:34.43ID:blJe5AIS
前々から思ってたけどkotlinスレって加齢臭すごいよな
877デフォルトの名無しさん
垢版 |
2018/03/19(月) 19:46:11.90ID:ahbMAcYG
>>874
機械語にハンドアセンブルしなきゃ…
2018/03/19(月) 21:18:34.15ID:C8WhjMTe
あいむふぉーてぃーふぁいぶにやーずおーるど
879デフォルトの名無しさん
垢版 |
2018/03/19(月) 21:42:58.40ID:t8aO/EAD
にやーず
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)なんかよりずっと期待できそうだが。
2018/03/21(水) 10:59:02.18ID:X+3O/rSH
GraalとKotlin/Nativeって用途もコンセプトも被ってないと思うんだけど
LLVMの使い方も逆方向だし
2018/03/21(水) 11:48:06.15ID:mE2iQj+B
Graalがどうとかいう以前に、JVMがないプラットフォームがあるのを何とかして欲しい。
ライブラリも含めてコードをそのまま持ち込んでも動くならともかく、Graalで多言語をサポートしても、
各言語の基本仕様だけでは大したことは出来ない。
2018/03/21(水) 11:52:50.41ID:R6+TRObd
run sometime somewhereだから仕方ない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況