Kotlin 2
■ このスレッドは過去ログ倉庫に格納されています
あれ、どうやって値返すんだよん。if else使いたくないんだけど。 >>779-780
太郎本でも読むことをお勧めする >>775
jsを、撲滅ってESの最新仕様追いかけなよ。
悪くないから コンパイルエラーがでるからそこらへん適当にやっててもなんとかなったけどww。
真面目に考えるとどうなってんだこれww
今までコンパイルエラーが消えるように適当に例えば、
fun testAsync(): Deffered<String> {
return async {
lock.withLock {
"ABC"
}
}
}
むしろ、retrunを付けると怒られたからこのままにしたけど。return@asyncってラベルつけるればいいのか。
ラベルつけない場合はどうなってんだこれ。 inline の場合は return の意味がちょっと変わっちゃうんじゃない? >>785
ありがとう。ちょっと前に話題になってたのね。
つか、前に教えてもらったhttp://jetbrains.github.io/kotlin-spec/
にそれに関する事のってねぇな?
DartだってECMAでしっかりした仕様書になってるのに、
仕様書がいまだにこんなレベルなのにAndroidのFirst Class Languageにするなんて
Google何考えてんだか・・ 後、
https://ideone.com/RIMEHi
で、
val t = Test()
t.update()
にすると、propertyが変更されないっぽいんですけど、なんででしょうか??
Android環境でコルーチンを使ってます
よろしくお願いします。 あれ、そういや、>>787でfieldってラムダ式の中から変更できるの?? え、Androidやろうと思って今ならKotlinかなって思って調べてたのに。 >>787
Androidやコルーチンであることは直接の関係が無く
インラインでないラムダとprivate setの組み合わせが影響しているようだ
https://ideone.com/aLit2X
↑これの「4」が出力されるケースと同じでsetの処理を通らずに
バッキングフィールドに直に代入されてると思う
バグか仕様か断言はしないけど、多分コンパイラのバグじゃないかな >>791
うぉぉ。ありがとう。コルーチン関係なかったのか。
まだ、インラインとか勉強してなくてさっぱりだけどw
この前の>>658も俺だし、
真面目にkotlinで開発しようと思って2週間ぐらいでこのザマとか
なんなのkotlinの品質。笑えないな。 そうだよね。俺もちょっと前というか昨日もそうだけど、>>787のまた変な動きに出くわして
さすがにうんざりしてIssue Trackerのぞいたけど、前のも報告されてないっぽいよねww
つか、前のやつは単なるコンパイラのバグですまされない仕様修正とか入りそうな予感してるんだけど。
まぁ、現状の仕様ってのがなんだかよくわからんけど。 コンパイラのバグはバグとして直すのが当然だけど
この前のバッキングフィールドの初期化回避や
setter内のインラインでないラムダからバッキングフィールドにアクセスするのを
普通のアプリ開発として書いているのなら止めた方が良いと思う
個人的な感覚では動作以前に「コンパイルが通るべきでは無いコード」だと思うので 仕様がないとバグかそうでないか判断できないが仕様はどこにあるんだ? kotlinで3000行くらいすでに書いちゃったけど、とりあえず、private setをpublic setに直して回避・・
しばらくflutterで遊んでくるか >>658のコードなんかは誰も書かないから発見さえされないし報告されてないんだろうね これからプログラミング初心者がkotlinを触るようになったらそこらへんも色々見つかるだろうね
今はまだほぼ他の言語で経験のある人しか触ってないでしょ 他の言語っていうか、java本業の人しか触ってないでしょ
Androidの入門書もまだほぼjavaばっかだし コマンドラインから何も引数付けずに kotlinc 実行するとRPELで動くけどこの時に :help で出てくる :dump bytecode ってなんなの?
名前からしてバイトコードをダンプするであろうことはわかるけど、いつやっても何も出ないんだよね。 C#のnameof演算子だと、コンパイル時に評価されますけど。
kotlinのプロパテイ参照は結構オーバーヘッド高いですかね??
when (propertyName) {
::property1.name ->
::property2.name ->
}
結構頻繁に評価されるコードなんですよね 今は定数でやってんですけど、まだ書き換えるべきが保留してるんです。
when (propertyName) {
"property1" ->
"property2" ->
}
リフレクション絡みのオブジェクトも普通にGC対象?で、その都度生成されたり破棄されたりすると予想しますが。
もちろんアプリ全体のボトルネックになるぐらい影響はないですけど、うーん。踏ん切りがつかん。 >>810
ありがとうございます。そうですね。プロパティ増やすたびにEnumの定数も定義する必要がありますが、
パフォーマンス的にはいいですよね。
で、今ちょっと見たことなかったんですけど、Javaのバイトコード見てみたんですけど最適化されてるのか??
メソッド呼び出しされてるのかと思ったら、定数値に置き換えられてました。
最適化のせいなら将来のコンパイラでどうなるかわかりませんけど、とりあえず、普通にプロパティ参照使って
置き換えてます。
ありがとうございました。 アンカ>>810じゃなくて>>811でした。すみません。 でもそれ結局今日も同じメニューになるよな
たまにはやよい軒行きたいわ、遠いけど すまん誤爆した
Xamarinのライセンス買ってくるわ やよい軒の鳥カツ定食なくなったらしいな
あれしか食わなかったのに waitとかマルチスレッド機能ぐらい用意しとけよー
結局java.lang.Objectから離れれられんじゃないか 逆に言えばJavaの機能で出来ることをわざわざKotlinで独自に作り直す必要ってあるかね クロスプラットフォーム押していくなら、Javaからある程度離れて開発できないとな。
Kotlin=JVMなら別にいいけど。 flutterがKotlinでできるようになったら流行りそうなのになー それが一番だけど、そうなるにはそうなるにはJetBrainsの対応待ってると時間かかりそうだから、
Google買収しないと。IDE全体抱えてもあれだからkotlin部門だけでも >>822
機能的に同じでも、より簡潔に書けるなら価値ある ゆくゆくはそうなっていくかもしれないけど、まずはJava完全互換を徹底して開発者を集めないとKotlin自体終わっちゃうし 日本のことりん本の電書、固定レイアウトなのか・・・ ことりん本に限らず図表の多い専門書は基本固定レイアウトが多い 超初心者で申し訳ありません。
Kotlinスタートブックを購入しました。
REPLを多用してるのでAndroid Studio3.01のREPLで進めたいのですが、
単純に、Kotlin REPLパネル内に、書籍のコード〜 じゃ無いようで、今一つ、Android StudioのREPLの使い方が分かりません。
Android Studio3.01のREPLで、「Kotlinスタートブック」をスターと部分だけでも紹介してる情報なありますでしょうか? あれこれして
書籍 P28の最初の一発目
class Rational(val numerator: Int, val denominator: Int)
val half = Rational(1,2)
half.denominator
と、打ち込んで 実行させたら、2って出来ました〜
Android Studio3.01のREPLを使って、読みすすめそうです。 解決したみたいだからいいけど、
技術書を写経するときはREPLよりもコードをファイルとして残しておいた方がいいと思うよ
読み進めた後にちょっと前に見たところを戻って書き換えたりとかしたくなることが多いと思う >>833
んなこと言うならテストとして書いたほうがいい。
テストの書き方も覚えるし ちょこちょこバージョンアップしてるみたいだけど、リリースノートってあるのかな? Swiftのバージョンアップは破壊的変更が多くてダルいらしいけどKotlinはどうなの? >>834
まあそれが理想だね
なんにせよ書いたものはちゃんと残しておいた方が良いわ >>835
Android studio使ってるならファイルをデバッグ実行してEvaluate Expressionするのが1番フィードバックが早くて使い勝手も良い >>843
ごくごく初期はなんか色々あったらしいけど、最近は既存のコードが動かなくなるような変更は記憶にないな。
そこらへんはJavaのカルチャーかも >>845
WantedのPython需要はやっぱAI関連なのかな >>822
少数でも信者が多ければ上位に食い込みやすいランキングに見える >>806
Androidアプリを完全にkotlinで実装するのはまだ苦労する >>851
何で苦労する?
いま、フルKotlinで問題がないから聞いておきたい あ、すまん。ちゃんと読んでなかった。
入門の文脈か ぶっちゃけ、PythonとKotlin覚えときゃ十分だよな
ソース見られてもいいようなちょっとした内部処理はPythonでやって、それ以外はKotlinでやればいいし REPLの使い方の説明ないんだよねあの本
ぶっちゃけ最初からいきなりファイル書いたほうがいいと思うわ REPL の :dump bytecode が未だにわからん。
分かるやつは居ないのか? githubで検索してmasterブランチのソース見たけど :dump bytecodeの対象は
ReplFromTerminal 経由で ReplInterpreterが直に持ってるReplClassLoaderで
ReplClassLoaderはaddClassされたものをdumpするみたい
それで addClass探したら HistoryActionsForNoRepeat で
ReplClassLoaderを新たに生成してaddClassしてるのしか見当たらなかった
読み間違いでなければ、addと列挙を異なるReplClassLoaderインスタンスでやってるので
dump bytecodeは常に何も出ないのでは HistoryActionsForNoRepeatで作られるReplClassLoaderは
topClassLoaderと合わせて3重にネストしてるように見える
ReplClassLoader (HistoryActionsForNoRepeatのメソッド内のclassLoader)
→親 URLClassLoader
→親 ReplClassLoader (状態によってはGenericReplEvaluatorStateのtopClassLoader)
→親 URLClassLoader
→親 ReplClassLoader (ReplInterpreterのclassLoader)
→親 URLClassLoader
makeReplClassLoaderは引数のbaseClassloaderがReplInterpreterだったら
newせず引数をキャストして返した方がいいような気が × ReplInterpreterだったら
○ ReplClassLoaderだったら >>856
わからないことがあったらコードを読む習慣がある奴と乞食するだけのお前
どんどん差は開いていくんだろうなぁ まー、わからないことがあればコード読むのが一番だけど、読まなくても質問の仕方ってもんがあるよな どなたかお分かりになる方はいらっしゃいませんか?
だよな、普通は >>866
医者ではなくて石屋ですが、お役に立てますか? この一言を添えるべきだったな。
「わからない人は書かないでください。」 前々から思ってたけどkotlinスレって加齢臭すごいよな マグナムドライをマグマグドライと呼ぶほど落ちぶれてはいない ■ このスレッドは過去ログ倉庫に格納されています