Kotlin 2

レス数が900を超えています。1000を超えると表示できなくなるよ。
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/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だから仕方ない
2018/03/21(水) 12:51:58.11ID:lHxXP1st
Graal

世界大百科事典内のGraalの言及
【聖杯伝説】より

…12世紀末ヨーロッパで顕在化したキリスト教の色濃い伝説だが,起源には諸説あり,
ケルト説話を源とする考えが有力。聖杯Graal(英語はGrail)を扱った最初の作品は
フランスの詩人クレティアン・ド・トロアの《ペルスバルまたは聖杯物語》(1185ころ)。
主人公が漁夫王の城で目にしたふしぎな行列,血の滴る槍と光り輝く聖杯について,
心に抱いた質問を口に出さなかった失敗がすべての発端であった。…

https://kotobank.jp/word/Graal-1233958
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
ぅおー
2018/03/21(水) 17:15:46.16ID:F1sATeyh
>>887
Analyze>Inspect Code
結果窓で気に入らないインスペクションを選択しスパナアイコンから設定画面でdisableする
2018/03/21(水) 20:14:30.97ID:v2KUYd83
Inspect Codeをどこをどういじったら変わるのか分からない
プロファイルってやつ?
名前の通りインテリすぎて使いこなせてない・・・orz
2018/03/22(木) 00:14:47.99ID:tdHViWJs
def initialize (number)
@number = number
end

Ruby のクラス内の、インスタンスメソッドの引数を、インスタンス変数に代入するなど、
@ の有無で、判別できるなら良いけど、

関数の引数と、関数内の変数は、共にローカルスコープで、
完全に、変数名もスコープも一致しているから、明らかな間違い
2018/03/22(木) 06:52:19.77ID:cNCV2D+g
>>887
Inspectionを切れば出なくなるしなんなら無視してもいいけど、そのコードは明らかに書くべきでないからコードを直した方が良い。
引数が変数の名前を変えるべき。
2018/03/22(木) 11:14:05.99ID:65GKgG7q
受け取った値に何かしらの加工を加えて返却する関数だと推測するけど
それなら引数の方をrawValueにするとか、変数の方をnewValueにするとか
なんでもいいけどとりあえずそのコードは俺がコードレビューするなら絶対指摘する
2018/03/25(日) 18:43:29.93ID:xXe3d6X4
Javaで
a instanceof CharSequence[]
してた部分はKotlinではどう置き換えたらいいでしょうか?
a is Array<CharSequence>
だとcannot check for instance of erased typeでエラーがでて型チェックができません。
2018/03/25(日) 20:49:47.22ID:sH0z9dIi
うちのKotlinはエラーにならないな
2018/03/25(日) 21:12:24.65ID:xXe3d6X4
https://ideone.com/IAkBb8
あれ、マジですか。Android Studioの方で駄目です。
バージョンって
ext.kotlin_version = '1.2.21'
これかな
2018/03/25(日) 21:41:32.67ID:sH0z9dIi
ああ、aが実際にArray<CharSequence>のときはエラーにならないぽい
Array<*>にするしかないのかなあ
2018/03/26(月) 09:16:05.43ID:NJeKHnKt
if(a is Array<*>) {
b = a.filterIsInstance<CharSequence>().toTypedArray()
}

とかは?
900899
垢版 |
2018/03/26(月) 09:17:35.12ID:NJeKHnKt
途中で送っちゃった

JavaのコードからAnyでくる何かの配列を扱いたいときに確かこんな感じで書いた記憶が
2018/03/26(月) 18:15:27.91ID:edzRf7Rx
勉強しようと思いリファレンス読みつつ Koans をやり始めた
最初は var, val や if, for とかかなと思ってたから面食らった
2018/03/26(月) 19:08:10.03ID:mWf0fgjW
小手ぇッ!
2018/03/28(水) 16:51:24.37ID:9zvhOWaV
|Д`) ダレモイナイ・・
2018/03/28(水) 17:07:17.12ID:FSNaWGFp
>>903
オドル ナラ イマノ ウチ
2018/03/28(水) 18:05:16.95ID:rBOzlEgA
|∀`) ことりんするならイマノウチ!!
906デフォルトの名無しさん
垢版 |
2018/03/28(水) 23:29:45.23ID:Q7o3nHcv
https://item.rakuten.co.jp/dearpet/f00ku08/
2018/03/28(水) 23:43:00.81ID:Q7o3nHcv
https://dic.pixiv.net/a/%E3%81%93%E3%81%A8%E3%82%8A%E3%82%93
2018/03/28(水) 23:48:30.41ID:FSNaWGFp
Java訴訟で神託に負けたから、次バージョンからkotlinかな
2018/03/29(木) 15:57:35.16ID:Ld+rPSgg
やっぱりこのスレおっさんしかいないな
2018/03/29(木) 17:12:06.04ID:JAPGCpCV
>>908
Kotolinにしても中身Javaじゃないの?
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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