Kotlin 2
: デフォルトの名無しさん [sage] 2017/11/01(水) 00:07:43.82:jxmKQQAl JetBrainsが開発した期待の新言語Kotlinについて語りましょう ttps://kotlinlang.org 前スレ Kotlin ttp://mevius.5ch.net/test/read.cgi/tech/1456505161/ : デフォルトの名無しさん [sage] 2017/11/01(水) 00:09:21.20:S3J9ewzc kotkot煮込んだJavaのスープ : デフォルトの名無しさん [sage] 2017/11/01(水) 00:10:25.85:ktrap7j9 ギャラクシーエンジェルのタイトルみたいだな : デフォルトの名無しさん [sage] 2017/11/01(水) 01:57:16.16:x/3omok5 乙 公式ブログ ttps://blog.jetbrains.com/kotlin コードを貼れる所 ttp://rextester.com/l/kotlin_online_compiler : デフォルトの名無しさん [sage] 2017/11/01(水) 01:58:25.77:x/3omok5 Google、KotlinをAndroidアプリ開発言語に選定 ttp://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/ Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。Realmが予測 ttp://www.publickey1.jp/blog/17/kotlinandroidrealm.html : デフォルトの名無しさん [sage] 2017/11/01(水) 08:47:27.86:3pYEq5sC 恐竜がいたら玉乗り仕込みたいね : デフォルトの名無しさん [sage] 2017/11/01(水) 13:26:42.48:8Fl3u9rT 名前の可愛さでいったら右に出るものがいない : デフォルトの名無しさん [sage] 2017/11/01(水) 20:25:18.56:55d56wrT 全然流行ってないね・・・ : デフォルトの名無しさん [sage] 2017/11/01(水) 20:57:53.51:3pYEq5sC 独自クラスのオブジェクトを突っ込んだListのソート処理がKotlinだと楽すぎてワロタ Comparatorとか実装する必要すらない : デフォルトの名無しさん [sage] 2017/11/01(水) 21:01:14.24:jurBUt2h ことりん with もえ Multi-OS Engineサンプル ttps://doc.multi-os-engine.org/multi-os-engine/3_getting_started/2_moe_samples/MOE_samples.html ttps://github.com/multi-os-engine/moe-samples-kotlin : デフォルトの名無しさん [] 2017/11/01(水) 21:17:46.15:KQYcmJno 流行り初めてんだよ。ようやっと日本語の入門書が増え始めたんだから。 まずはAndroidアプリ用で使う人が増えると思う。 : デフォルトの名無しさん [sage] 2017/11/01(水) 21:20:57.76:RmpG/IBv 海外だとアプリはもうKotlinがデフォルトらしい ttp://tech.gunosy.io/entry/droidconNYC-2017 : デフォルトの名無しさん [sage] 2017/11/01(水) 21:22:25.90:n8DQDdRQ いちいち反応しなくていいよ… : デフォルトの名無しさん [sage] 2017/11/01(水) 22:03:41.76:3pYEq5sC Kotlinの仕事にありつけてないお前ら全員失業wwwざまああwwww : デフォルトの名無しさん [sage] 2017/11/01(水) 22:07:42.20:K1kOfoLS kotlinインアクション買った人いる?良さそう? : デフォルトの名無しさん [sage] 2017/11/01(水) 23:18:03.22:65SAREI7 ちょっとカジってみたけど、JavaとかC#とかScalaとかF#とかをごった煮にした感じだね イマイチ新鮮味が無いけど、JVMでAndroidやらSpringやらで使えるっていうのが重要なのかな : デフォルトの名無しさん [sage] 2017/11/01(水) 23:50:48.17:n8DQDdRQ 下手に新機軸で目新しかったらScalaの轍を踏んでしまうだけだからな Javaと併用するベターJavaの範囲を逸脱しなかったことでここまでの地位を短期間で得たのだ ほどほどって何事も大事ね : デフォルトの名無しさん [sage] 2017/11/02(木) 02:41:34.42:LsnbbfZc 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 : デフォルトの名無しさん [sage] 2017/11/02(木) 02:56:32.36:pq+UNRec 逆に言うと中途半端で わざわざ覚えるのに 新しく使えるものが少ない でもまあScalaだと そこそこ難しくなってしまうから Kotlinの方が流行るだろうね : デフォルトの名無しさん [sage] 2017/11/02(木) 08:50:34.61:Cum5cn5z ボイラープレート自体が消えるということに喝采した人が多い 「それくらいIDEが自動で大量に書いてくれる」ではなく「そもそも無い」が好まれるのだ 視覚情報大事 : デフォルトの名無しさん [sage] 2017/11/02(木) 12:58:30.02:U1n8VN2V ヘッチャラ! : デフォルトの名無しさん [sage] 2017/11/02(木) 19:30:44.53:SsjTYyhv android専用みたいになってるけど、 javaでやれることは、 全部kotlinでもできるの? : デフォルトの名無しさん [sage] 2017/11/02(木) 19:53:40.80:Cum5cn5z 誰だそんなAndroid専用とか変なこと言ってるの… ただほんのちょっと、現時点でのJavaの新規用途や一般人用途がAndroidアプリ作成しかないだけじゃないか… ということで「ふつうの」Javaが使えるとこはだいたいKotlinが使えるよ 企業に勤めてるような人でもない限り Javaプログラミング=Androidアプリプログラミング なのでそんな認識になってるだけだ 組み込みとかあのへんの大変そうなとこはたぶんまだ無理だけど、そういうとこに使えるかどうか気になるような人はKotlinが動作しうるかどうかは見てわかるだろう : デフォルトの名無しさん [] 2017/11/02(木) 20:45:39.00:n5fZR6Gb ていうか Java にできて Kotlin にできない事ってあるのか? そんなもん無いようにしか見えないんだが。 : デフォルトの名無しさん [sage] 2017/11/02(木) 20:48:41.34:SsjTYyhv ありがとうございます。 Javaの勉強中断して、 kotlinから始めてみます。 : デフォルトの名無しさん [sage] 2017/11/02(木) 20:50:04.74:osyIV8kF バグの量産はJavaにしか出来ない : デフォルトの名無しさん [sage] 2017/11/02(木) 21:13:31.03:ScvYxhm1 奴隷の大量使い捨て : デフォルトの名無しさん [sage] 2017/11/02(木) 21:17:36.20:Cum5cn5z 吐き出すのはただのclassファイルなんで、滅多なことではないと思うんだけど、断言できるほど知識もないのでドリームを残しておいた きっと凄い人が無償で調べてカッコよく回答してくれるはずだ : デフォルトの名無しさん [] 2017/11/03(金) 00:42:19.00:mQ2prqq7 これまでのまとめ Java にできて Kotlin にできないこと 1. バグの量産 2. 奴隷の大量使い捨て : デフォルトの名無しさん [] 2017/11/03(金) 00:43:31.08:nVcCm6Uk kお前らが作ったら何使ってもバグの量産だろwww : デフォルトの名無しさん [sage] 2017/11/03(金) 00:46:00.51:+ZuXY7od 存在がバグみたいなお前に言われたくねーよwww : デフォルトの名無しさん [sage] 2017/11/03(金) 06:07:02.26:fxD35jMc 恐竜になれる : デフォルトの名無しさん [sage] 2017/11/03(金) 09:03:14.88:L9p6V4NW 読みで画像検索すると語感や方向性がよく分かる 画像検索 じゃば ttps://www.google.co.jp/search?tbm=isch&q=%e3%81%98%e3%82%83%e3%81%b0 画像検索 ことりん ttps://www.google.co.jp/search?tbm=isch&q=%e3%81%93%e3%81%a8%e3%82%8a%e3%82%93 : デフォルトの名無しさん [sage] 2017/11/03(金) 09:26:39.80:1r95yYp8 これはひどいw : デフォルトの名無しさん [sage] 2017/11/03(金) 12:10:24.60:MxTlS5aq flag |= x flag &= ~x これを flag = flag or x flag = flag and x.inv() こう書かなきゃならない冗長さ 開発者曰く、可読性の問題なら関数にすればいいじゃんと : デフォルトの名無しさん [sage] 2017/11/03(金) 12:25:36.60:OuG6RHrP 超一般論としては論理演算子付き自己代入はそれによって陰に実行されるものがあんまり自明ではないので使わないほうがよい あんまり自分の分析能力を信用してはイカンよ : デフォルトの名無しさん [sage] 2017/11/03(金) 13:13:37.26:wGONik3H Kotlin in action読んだ 良いよ : デフォルトの名無しさん [] 2017/11/03(金) 13:24:04.81:mQ2prqq7 Kotlinインアクションはいいことはいいのだが索引が貧弱で、 例えばソートしようと思って索引見ても sort が載っていない。 じゃあ List のメソッドだろうということで List を探しても載っていない。 ということでリファレンスとして使えない。内容同じままでいいから索引を大幅拡充したの出して欲しい。 : デフォルトの名無しさん [sage] 2017/11/03(金) 13:40:24.99:lM06sbH0 結構難しい言語だね : デフォルトの名無しさん [sage] 2017/11/03(金) 13:42:14.46:wGONik3H エルビス演算子ってエルビス・プレスリーからきてたんだな : デフォルトの名無しさん [sage] 2017/11/03(金) 14:13:34.27:OuG6RHrP エルビス・プレスリー知らない人も多そうだし、常識として知っててもなにがどうエルビスなのかわからん人もいそうだ 袖のじゃらじゃらした飾りだと思ってる人もいるけど違うからね ? は髪型だからね ttps://image.slidesharecdn.com/fun-with-kotlin-160625143733/95/fun-with-kotlin-37-638.jpg : デフォルトの名無しさん [sage] 2017/11/03(金) 16:47:24.64:9CXEo34m Scalaより簡単 : デフォルトの名無しさん [sage] 2017/11/04(土) 00:16:44.84:onhYINWl Kotlin in actionのおかげでやっとflatmapの意味が分かった : デフォルトの名無しさん [sage] 2017/11/04(土) 03:50:10.34:3cC+jj+w ifとか式にできるくせに、代入文は式にできねぇの??しょっぺぇ。 while ((bytesRead = stream.read(bytes)) != -1) とかできねぇの?しょっぺぇ : デフォルトの名無しさん [sage] 2017/11/04(土) 04:33:53.14:3cC+jj+w あれ、ひょっとして、kotlinてまだシリアライズできねぇの?? しょっぺぇ・・・ 普通にデータの保存にJavaのバイナリフォーマットのシリアライズ使ってたんだけどな・・・ あぼぼぼぼぼ。 : デフォルトの名無しさん [sage] 2017/11/04(土) 05:51:43.84:UAaAlIwj なんかかわいそう : デフォルトの名無しさん [sage] 2017/11/04(土) 07:35:45.71:NNCD/Zi9 生暖かい目で見守ってあげよう : デフォルトの名無しさん [sage] 2017/11/04(土) 08:18:58.07:hKqH3C3y whileはみんなそこで詰まるNE! Kotlinは条件部分で副次作用が起こることをよしとしないのだ 数少ない「単体部分で見ればJavaより記述量多い」部分なので、 我慢して明示的に変数定義に切り分けるか、素直に組み込みのBufferedReaderとか使ってくれ よっぽどオリジナルでない限りwhileでなんかしてたやつは「whileの外ごとまとめて」3行くらいで書ける : デフォルトの名無しさん [sage] 2017/11/04(土) 10:23:22.90:jcPkxcYi 昔、ポインタ演算できないからJavaはしょぼい、というような主張してる奴が たまに居たのを思い出した : デフォルトの名無しさん [sage] 2017/11/04(土) 11:18:50.17:onhYINWl Kotlinの仕事ができてないお前ら失業確定www無職ざまあwwwwww : デフォルトの名無しさん [sage] 2017/11/04(土) 11:58:10.64:hKqH3C3y Java使ってれば違和感なく移行できますと言われつつ、実際はプチパラダイムシフトの受け入れが必要なのはちょっと不誠実かなとは思う 我々は「うっひょー○○言語や××言語のアレみたいだね!」とか喜ぶわけなんだが Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い : デフォルトの名無しさん [sage] 2017/11/04(土) 12:33:29.77:jcPkxcYi アピールしてるのは「相互運用性が高いから移行できます」であって、「違和感なく移行できます」では無いよ そういうのを書いてる第三者の記事はありそうだけど 公式的にはむしろ関数型に力入れてるのを売りにしてる : デフォルトの名無しさん [sage] 2017/11/04(土) 19:11:42.37:mE4V8fBV > Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い そうやって全く関数型やらモダン言語らしいとこ使わない違和感あるKotlinコードが出来そう : デフォルトの名無しさん [sage] 2017/11/04(土) 19:14:15.39:YWCXhaIP プロパティと型推論しか使わないのもあり? それならできそう。 : デフォルトの名無しさん [sage] 2017/11/04(土) 22:23:46.53:g0AJbdlv Kotlin in action買おうか迷っているけど、公式サイトの解説と比べてもっと深いことが書いてあったりする? ちなみにKotlinスタートブック は読了済み。 : デフォルトの名無しさん [sage] 2017/11/04(土) 22:34:52.81:U6RGh2Ax javaとの対比だとプロパティとnull安全だな。最も有用 それ以外はコーディング的な進化だから追々覚えればよい : デフォルトの名無しさん [sage] 2017/11/05(日) 00:26:43.77:x5/Ij6xv 俺のお気に入りのF#はなんだかんだでnull残ってるから、その点はkotlin羨ましい : デフォルトの名無しさん [] 2017/11/05(日) 00:58:12.21:YBVMpJn0 残念ながらjava互換だからnullは無くならないのだよ : デフォルトの名無しさん [sage] 2017/11/05(日) 02:57:49.62:WRVCeBNz ガードしない場合、ぬるぽが起こる割合はJavaとほぼ同じ 言語の仕組み上安楽にガードしやすいってだけの話だからね しない・できない・忘れてたという場合はぬるぽぬるぽぬるぽだ コードはまさに意図した通りではなく書いた通りに動く そこでは思想など無意味だ : デフォルトの名無しさん [sage] 2017/11/05(日) 11:18:58.60:vfJyTH9D Android Studioでのコード補完のパラメータ表示にInputStream!とか末尾に「!」が ついてるんですが、これは何なんでしょうか? : デフォルトの名無しさん [] 2017/11/05(日) 11:55:04.18:WRVCeBNz IntelliJ の T! は「T か T? のどちらか」を示す つまりNullableかどうかすらわかんねえという記号 : デフォルトの名無しさん [sage] 2017/11/05(日) 12:09:14.89:vfJyTH9D ありがとうございます。Java絡みのは当たり前ですが、ほぼそうなってますね。 理解しました。 : デフォルトの名無しさん [sage] 2017/11/05(日) 12:47:54.37:pFqd1r18 忘れてたって言ったって全部に?付けないとJavaと同じにならないわけで ?付けなけりゃコンパイル通らないしNULL安全意識せざるを得ない : デフォルトの名無しさん [sage] 2017/11/05(日) 14:29:21.23:kyKiHR5g !! は、Nullable を、NotNull に強制変換する、危険な演算子だから、 requireNotNull 関数を使え 例えば、Java から、null が代入される場合、 String → IllegalStateException。ヌルポよりまし String? → Nullable なのでOK Platform Type 型を省略(String!) → デリファレンス時に、ヌルポ Java からの戻り値がすべて、Nullable になるのは困るので、 その折衷案がPlatform Type : 64 [sage] 2017/11/05(日) 14:35:11.49:kyKiHR5g Java からの戻り値をすべて、Nullable にするのは面倒なので、 そのまま使ったのが、Platform Type デリファレンス時に、ヌルポとなるため危険! : デフォルトの名無しさん [] 2017/11/05(日) 14:40:57.73:YBVMpJn0 めんどくせえな : デフォルトの名無しさん [sage] 2017/11/05(日) 15:03:32.80:cR0WBKoF Javaのほうのコードに@NonNullアノテーションつけとけば、KotlinからT!じゃなくてTとして扱える : デフォルトの名無しさん [sage] 2017/11/05(日) 15:52:17.12:WRVCeBNz 現代的な気遣いのされてるJavaライブラリはKotlinからでも便利に扱える シガラミがあって旧来のままのライブラリはそりゃ利用者側が手間かけるしかない : デフォルトの名無しさん [] 2017/11/05(日) 16:52:07.10:J++DNvfV ラッパークラス作るぐらいしか方法なさそうだな : デフォルトの名無しさん [sage] 2017/11/05(日) 18:48:00.64:WL5EiVt2 ラッパークラスもありだし、OSSなライブラリだったらアノテーション付与してPR送るのも有用だな : デフォルトの名無しさん [sage] 2017/11/05(日) 19:23:52.87:giKdejUB Kotlinから使いやすくなりました! みたいに言えるのはひょっとしたら売りになるかもしれんね : デフォルトの名無しさん [sage] 2017/11/05(日) 19:25:37.10:zDQnBwdh ことりちゃん、マジ使いやすいぜグフフ : デフォルトの名無しさん [] 2017/11/05(日) 19:26:26.36:YBVMpJn0 ことりんの擬人化はよ : デフォルトの名無しさん [sage] 2017/11/05(日) 20:25:14.58:UMg3GOyt : デフォルトの名無しさん [sage] 2017/11/05(日) 22:47:01.75:z1YM2S+z (・8・) : デフォルトの名無しさん [] 2017/11/06(月) 10:56:08.46:OqkByGQj やはり擬人化が必要だな 萌えキャラで : デフォルトの名無しさん [sage] 2017/11/06(月) 11:49:59.43:kblaZiQ3 何のために必要なの? : デフォルトの名無しさん [] 2017/11/06(月) 13:01:01.21:V0vtn4gd それは君には中々理解できない理由による。 例えば以前Appleが傾いた時にジョブズが復帰してiMacを作ってAppleは救われたが、iMacはハードウェアとしてそんなに素晴らしかっただろうか? たいして素晴らしくはないのだ。ブラウン管ディスプレイに本体入れて一体化しただけだ。しかし売れた。なぜか? デザインがよかったからだ。コンピュータとしてはどうでもいい見た目が売れ行きに多大に影響した。 技術者から見ればどうでもよさそうなものでも甘く見てはいけないということだ。 : デフォルトの名無しさん [sage] 2017/11/06(月) 13:32:09.21:wZC/0idP 技術的な話をスレでされても理解できなくて不愉快だから「とにかくほかの話」をさせたがっている 知らない言語のスレなんて見なきゃいいのにね : デフォルトの名無しさん [sage] 2017/11/06(月) 15:15:58.89:DlVzck/L goが人気になった要因もgopher君が半分くらいあるからな。ことりんはいいな : デフォルトの名無しさん [] 2017/11/06(月) 15:18:23.96:8DS1P3Ga ほんとおまえらはばかだなあ 日本の電子IT系なんてオタクの巣窟なんだから萌えキャラことりんで流行言語間違いなしやで : デフォルトの名無しさん [sage] 2017/11/06(月) 16:21:48.60:kblaZiQ3 うわぁ、、、 : デフォルトの名無しさん [sage] 2017/11/06(月) 16:34:20.33:9YhppvEm ことりんとペアプログラミングしたい : デフォルトの名無しさん [sage] 2017/11/06(月) 19:29:33.22:otMLf3Eu 「ことりん」のライバルが「ざまりん」で草 : デフォルトの名無しさん [] 2017/11/06(月) 20:50:33.70:iuxlkbQ9 インアクションとなんとか太郎本どっち買おう 後者は本屋で見たんだけど : デフォルトの名無しさん [sage] 2017/11/06(月) 21:11:27.46:RNAOm4Mq 目指すとこがちゃうからな 現在どのくらい習熟してるかにもよるかと : デフォルトの名無しさん [sage] 2017/11/07(火) 06:11:35.45:uepCx6fG 「たのしいRuby 第5版、2016」高橋 征義 「みんなのPython 第4版、2017」柴田 淳 「Kotlinスタートブック、2016」長澤 太郎 この辺は、日本では、避けては通れない人達 : デフォルトの名無しさん [sage] 2017/11/07(火) 06:23:46.73:W6HmiFf1 逆に避けなくてはいけない人達はだれ? : デフォルトの名無しさん [sage] 2017/11/07(火) 07:22:52.64:atDIxfPJ 掌田津耶乃 : デフォルトの名無しさん [sage] 2017/11/07(火) 08:53:40.81:kYRdbaxp 掌田津耶乃 : デフォルトの名無しさん [] 2017/11/07(火) 12:19:01.95:yzrwY/tJ そうなの?どういう点がまずいの? : デフォルトの名無しさん [sage] 2017/11/07(火) 12:37:41.70:08KjVeec 内容が薄い : デフォルトの名無しさん [] 2017/11/07(火) 12:40:11.22:yzrwY/tJ なるほど。 濃いめなのは? : デフォルトの名無しさん [sage] 2017/11/07(火) 12:53:17.32:atDIxfPJ 公式のチュートリアルをパクって チョコっと変えて解説してるだけ : デフォルトの名無しさん [sage] 2017/11/07(火) 14:06:00.83:uepCx6fG 掌田津耶乃は、ほとんどの言語・フレームワーク・開発環境の、本を書いてる 売れ筋では、必ず顔を出す。 売れる分野に、掌田あり! : デフォルトの名無しさん [sage] 2017/11/07(火) 17:10:16.14:qyKBmVxs 公式見て自習しろや、が通じるならセミナーとか講演会とか必要ないわけでな(いや、これに関しては別に必要ないとは思ってるが) 世の中の需要はあんまりロジカルではないのだ : デフォルトの名無しさん [sage] 2017/11/07(火) 21:38:52.62:tWasbjrL 太郎しか読んでないでActionは買ったばかりだけど、 Javaは一通りで来てKotlinをとりあえずやってみたいなら太郎、 Kotlinにどっぷり漬かることが確定しているならAction?かな いずれにしてもJavaの理解はないとかなり不利。 器用貧乏というやつですね、わかります。 : デフォルトの名無しさん [sage] 2017/11/07(火) 22:51:30.64:6NdbJPOz 昔の河西か : デフォルトの名無しさん [sage] 2017/11/07(火) 23:03:28.24:kYRdbaxp 入門書ばっかり書いて金儲けするのが目的なんだろう : デフォルトの名無しさん [sage] 2017/11/07(火) 23:20:19.14:hhPr1fc6 やってみるとわかるのだが(やらなくてもいいが)、中上級者向けの本というのは全然儲からないのだ 書くの時間かかるし分厚くなって値段高くなるし売れなくなるしチェック内容増えるし時代遅れが混じるし下手すると共書だし 出来によっては「あのすごい便利な本を書いた人」という称号はいくらかの称賛になり、ひょっとしたら生活豊かルートをも開拓するかもしれないが、分は悪い 初心者向けの本をひとりで年に2冊くらい書いてたほうが、志低いと揶揄されながらもきちんと生活できるのさ : デフォルトの名無しさん [sage] 2017/11/08(水) 01:07:22.53:3tNQk30d 粗製濫造して食う飯はうまいか : デフォルトの名無しさん [sage] 2017/11/08(水) 01:24:37.30:pvxNciwf やってみるとわかるとな? : デフォルトの名無しさん [sage] 2017/11/08(水) 05:57:05.62:Z7LnM2jK 掌田津耶乃って何者? (Late 2012) ttp://egg.2ch.net/test/read.cgi/mac/1349360916/ 1 :Mac Fan Letterより転載 [sage] :2012/10/04(木) 23:28:36.22 ID:ZGQCgQTH0 ● ネットサーフの溺死者たち 「友がみな我より偉く見ゆる日よ」 「2チャンネル」という最低最悪のサイトがある。 : デフォルトの名無しさん [sage] 2017/11/08(水) 06:28:34.57:ShM00Q+N 器用貧乏とは言ったものの、翻訳書が原書+1000円くらいの値段になることがざらなことを考えると 英語の公式チュートリアルを訳しただけでも、値段相応なのかもしれん。 しかし、著者のことをよく知らずにタイトルだけでうっかり買ってしまったものの身にもなって欲しい(自己責任) 深く理解した上で書かれた本かどうかは、(本を必要とするレベルの人には)立ち読み程度ではわからない。 : デフォルトの名無しさん [sage] 2017/11/08(水) 08:32:48.67:a/cZ4nXd Kotlinに限らずあれもこれも全く初心者に寄り添っていないことを鑑みると、初心者向けの本を書くというだけで価値があるのやもしれぬ あなたがライブラリマニュアル作るときに開発環境のダウンロードやプログラミング言語の文法から説明しないのと同じだ : デフォルトの名無しさん [sage] 2017/11/09(木) 10:27:49.04:IVrwQxMl 「単純に意味や役割が似通ってるメソッドを集めただけのメソッド集」を表すものってないですかね Rubyでいうmoduleみたいなやつ 特にどのオブジェクトに属してるってわけでもない、誰も初期化しなくてよくてすぐメソッドが使えるやつ いまobjectでシングルトンクラスにしてるけど、なんか漂う特別感に違和感が : デフォルトの名無しさん [sage] 2017/11/09(木) 12:13:06.41:77e4Bz/I 適当なネームスペースで、メソッドじゃなくて関数だけ複数定義したファイルを作ればいいんじゃないかな? : デフォルトの名無しさん [sage] 2017/11/09(木) 13:29:13.78:IVrwQxMl ああなるほど、packageで分ければいいのか… シングルトンクラスの中に書くよりはしっくりくる…ような…気が…す…うん、そういうものだと思うことにします : デフォルトの名無しさん [sage] 2017/11/09(木) 21:56:51.74:+8G/D3P4 Kotlinで以下の処理をスマートに書き直したらどうなりますか int idx = -1; for (int i=0; i<list.size(); i++) { if (list[i].data == data) { idx = i; break; } } (idxを使った処理) : デフォルトの名無しさん [sage] 2017/11/09(木) 22:05:39.85:UXPTP/DS val idx = list.indexOfFirst{ it.data == data } : デフォルトの名無しさん [] 2017/11/09(木) 22:25:18.35:UmUHoiDy 逆引き、ポケットリファレンスものを出して : デフォルトの名無しさん [sage] 2017/11/09(木) 22:52:38.14:+8G/D3P4 サンクス!まさか1行でできてしまうとは。。 Android Studioに貼り付けてもこうはならないよね : デフォルトの名無しさん [] 2017/11/10(金) 09:13:11.87:oAWKYFWM とりあえずここで質問すれば答えが書かれるので、後でまとめページを作れば良い。 : デフォルトの名無しさん [sage] 2017/11/10(金) 09:42:49.25:ju9EA6eo Kotlin、、怖ろしい子。。 : デフォルトの名無しさん [sage] 2017/11/11(土) 02:40:35.26:BhMQDmGd じゃばの妹ことりん : デフォルトの名無しさん [] 2017/11/11(土) 03:22:51.50:xG+5Xfzv なんだその国民の妹みたいな表現は : デフォルトの名無しさん [sage] 2017/11/11(土) 10:02:03.10:N7WPFjKT ことりん星からやったきたことりん : デフォルトの名無しさん [sage] 2017/11/11(土) 10:10:11.58:ydtAG8Bz それ最後に爆発するやつじゃんw : デフォルトの名無しさん [sage] 2017/11/11(土) 11:27:33.83:GExxj/Q0 お前ら「よーし新しく覚えたKotlinのあんな技こんな技使ってコーディングするぞー」 〜 数日後コードレビュー 〜 リーダー「あー、これ全部Javaと同じ感じで作り直しといてネ、ヨロシク」 : デフォルトの名無しさん [sage] 2017/11/11(土) 13:22:59.28:2zKmkyWC ゆうこりん : デフォルトの名無しさん [sage] 2017/11/11(土) 14:04:32.65:7fLEJN4j コーディングルールでピュアJava使えってなってるならただのアホだろw : デフォルトの名無しさん [sage] 2017/11/11(土) 21:12:50.74:F2DPX6tK トップがKotlinへの移行を目指して次はKotlinとJavaの混在プロジェクトにするとか言って、 でも所属するチームのトップがJavaしか使わないとかいうシナリオなら、 のような事が起きたとしてもの言うような矛盾はない...と思う。 : 122 [sage] 2017/11/11(土) 21:14:35.14:F2DPX6tK そして逆コンパイルしたJavaを提出して盛大に怒られる...みたいな。 こんなことで連投してスマン : デフォルトの名無しさん [sage] 2017/11/12(日) 01:41:23.15:x+b1eGgz そんな会社辞めちまえ : デフォルトの名無しさん [sage] 2017/11/12(日) 02:34:42.29:0YSprajH 君、セミコロンを忘れているよ。 : デフォルトの名無しさん [] 2017/11/13(月) 09:38:49.46:Ffr39/Md ; : デフォルトの名無しさん [sage] 2017/11/15(水) 06:46:05.48:cIMRwHcF 君、中身を忘れているよ^^; : デフォルトの名無しさん [] 2017/11/15(水) 12:16:34.07:XQCt13cq println(";") : デフォルトの名無しさん [sage] 2017/11/15(水) 12:45:09.17:P+eW6LIt ぷりんとりん : デフォルトの名無しさん [] 2017/11/15(水) 17:33:26.94:NOd3J7Vc そういや print って印刷って意味だよな。もはや時代も変わり誰も印刷してないのにプログラミング言語では print で出力が定番になっちゃったな。 : デフォルトの名無しさん [sage] 2017/11/15(水) 18:04:14.40:svkVDlGw 厳密には印字なのでギリギリ合ってる 原初のBASICのPRINT対象はテレタイプだったから印刷するという意図とはそもそもちょっとだけ違う : デフォルトの名無しさん [sage] 2017/11/15(水) 18:13:51.46:B4seksg+ ポワトリン : デフォルトの名無しさん [] 2017/11/15(水) 20:09:08.28:hiEIJUlA ブラウン管に文字を焼き付けるから print 無理があるな。 : デフォルトの名無しさん [] 2017/11/16(木) 10:46:41.50:Wcsn/bEa printの古い意味は押すだからな : デフォルトの名無しさん [sage] 2017/11/16(木) 11:23:36.83:pe2ew9X7 そういえば昔、プリントごっこで押しまくってたな : デフォルトの名無しさん [] 2017/11/16(木) 11:54:15.38:czRbGJih putもあるやん : デフォルトの名無しさん [] 2017/11/16(木) 12:14:02.89:Wcsn/bEa putは置く : デフォルトの名無しさん [] 2017/11/16(木) 16:02:46.86:bDWmFK6d 押して痕跡残すようなのが print だな。 : デフォルトの名無しさん [sage] 2017/11/16(木) 20:15:28.89:Sk98YgzR kotlinの文法ってちょっと省略しすぎだし、やりすぎじゃねぇの・・・ C#の方がバランス取れてるわ。 : デフォルトの名無しさん [sage] 2017/11/16(木) 21:14:22.81:3Aqd/ZMZ 具体的にはどういう文法のこと言ってるの? : デフォルトの名無しさん [] 2017/11/17(金) 08:55:38.80:YqqDZ5Dd 慣れの問題だと思うけどなあ : デフォルトの名無しさん [sage] 2017/11/17(金) 09:43:27.88:Ddb5xKAY 抽象化と少ないコードが正義な昨今の風潮ではこういう文法が受ける 本当にこれで良かったのかは後10年ぐらいしたらわかるだろう : デフォルトの名無しさん [sage] 2017/11/17(金) 09:59:51.99:QGpoznNs どれがとは言いにくいけどの言いたいこともわかる気がする。 個人的にはコンストラクタをクラス宣言に書けば、フィールドやコンストラクタの宣言を省略できる仕様とか。 2つ以上のコンストラクタを定義したり複雑なコンストラクタを定義しようとするときの表現に一貫性がなくなったと思う。 フィールド(Kotlinではプロパティだっけ)の記述場所もクラス宣言と本体にバラバラの配置になるし。 Javaにしとけばいいのかもしれないけど、null安全に書いてみたいと思って使っている。 あとwhenがお気に入り。 : デフォルトの名無しさん [sage] 2017/11/17(金) 10:24:11.98:welKudTx CP/M80上で動くKotlin処理系が無い… : デフォルトの名無しさん [sage] 2017/11/17(金) 10:46:54.88:8xh7qM4F これはこれで同じこと書いてる感がん〜って感じではある class MyData(name: String, age: Int){ val name = name val age = age } 引数にval書けちゃうことでの「見かけ一貫性の破れ」と「引数もチェックしなければならなくなったという手間」は肯定する : デフォルトの名無しさん [sage] 2017/11/17(金) 10:51:53.19:ENBrszFD というかあれはdataクラスを便利に書くためだけのギミックな気がするぞ しかし言われてみれば視線的にめっちゃ遠いのはその通りだな、家のやつは今度使わずに書いてみるか : デフォルトの名無しさん [] 2017/11/17(金) 11:08:33.26:YqqDZ5Dd JavaVMが動かんわw : デフォルトの名無しさん [sage] 2017/11/17(金) 15:22:12.81:4edLbtL+ KotlinがNull安全といっても結局、Javaなどの使用するクラスライブラリがNull安全じゃないからな。 Kotlinだけで閉じてればいいけど、Kotlin最小限のライブラリしか用意してねぇし。どうすりゃいいんでしょうか?? 「!!」演算子積極的に使えばいいの? : デフォルトの名無しさん [sage] 2017/11/17(金) 15:36:01.97:ocCweAVX 自分のメソッドは全部ヌルポ無しにすればいい。 : デフォルトの名無しさん [sage] 2017/11/17(金) 15:42:27.11:4edLbtL+ うん。自分のメソッドはNot Nullにしてるけど、その実装で結局、Javaのクラスが絡む事多いから、 その実装部分で「!!」連発してるんだけど、なんだかなぁ・・・・・ : デフォルトの名無しさん [sage] 2017/11/17(金) 15:49:49.94:ENBrszFD ぬるぽが出そうならトラップするという記法がKotlinにはいくつもあるだろそれ使え chackNotNull(nullable){ "ぬるぽだけは阻止しましたが例外で落ちますさようなら" } nullable?.aaa?.bbb ?: throw RuntimeException("エラーとぬるぽって死ぬ点で大差なくね?") when(){ nullable == null -> println("おかあさんに言いつける") isSomeState -> nullable.xxx.yyy // 文脈上nullが来得ないので ?. で書かなくていい } : デフォルトの名無しさん [sage] 2017/11/17(金) 15:51:51.91:ENBrszFD ああまた空whenに()つけてる 毎回間違って毎回IDEに文句言われるんだよなこれ : デフォルトの名無しさん [sage] 2017/11/17(金) 16:16:30.86:4edLbtL+ >ぬるぽが出そうならトラップ ぬるぽが出そうというより、Javaのクラスから返される型は「型名!」ってAndroid Studioを 表示されてて、この型ってNullableの「型名?」と同じでNullチェックしないといけないと思ってて 「!!」連発してたんだが、これ違うな・・・ 「型名!」ってNullチェックしなくてもいいのか・・・ つか、言語仕様上どんな扱いになってんだこれ・・ : デフォルトの名無しさん [sage] 2017/11/17(金) 16:19:43.26:4edLbtL+ で質問したときに、で答えてもらって ただのIDEの表示上の事なんだと思ってたが違うのか?? : デフォルトの名無しさん [sage] 2017/11/17(金) 16:38:25.33:ENBrszFD T? と T or T? は違うよ Nullableかどうかすらわからない後者の場合はnullチェックしなくてもコンパイルは通るよ 「だってそれはNullableではないから」 まあ、そしてぬるぽが出るんだけども Kotlin的にはnullチェックは不要だけどIDE的にはnullが入りうることがわかってるので気を付けてね! の ! だ : デフォルトの名無しさん [sage] 2017/11/17(金) 17:00:12.18:4edLbtL+ ありがとうございます。 Platform Typesについてしっかり読んでませんでした。そこに色々書いてありましたね。 : デフォルトの名無しさん [] 2017/11/17(金) 17:09:53.72:4edLbtL+ >T? と T or T? は違うよ T or T?がプラットフォーム型というやつですかね。で、プラットフォーム型ではNullチェックが緩和される って書いてありましたね。 T? と T or T? は同じと勘違いしてました。要はT or T?か分からないから、よりたくさん表現できるT?として扱えばいいし、 そうなってるのかと勘違いしてました。 : デフォルトの名無しさん [sage] 2017/11/17(金) 17:41:51.36:4edLbtL+ つか、デバッグしてて思ったけど、C#のusing (resource)やlock文に相当する言語組み込みの 文がkotlinにないのがちょっとめんどくさいよね。ステップオバーで順にどんどん進めねぇじゃねぇか・・ inputStream.use { // いちいちここにブレークポイント設定しないと・・・ }とかだと、実態は関数呼び出しだから、ステップオーバーだと、内部のブロック飛び越えちゃう・・ : デフォルトの名無しさん [sage] 2017/11/17(金) 17:57:25.06:ENBrszFD ステップイン/ステップアウトではだめなのか : デフォルトの名無しさん [sage] 2017/11/17(金) 18:06:21.43:4edLbtL+ ああ、ステップインで行けたね。ステップインすると、最初useなどの拡張関数の方にぶっとぶかと思ったけど、 自分のブロックの方に直接飛べるのか。 まぁ、オーバー・インを切り替えるのひと手間だけど、まぁそれぐらいなら。 : デフォルトの名無しさん [sage] 2017/11/17(金) 20:50:48.90:4edLbtL+ 正直、AndroidのJavaの代替としてKotlinを使うなら、Android Studio 3.0でJavaで全APIレベルでラムダ式が 使えるようになったらしいし、後、Javaにvarなどのローカル変数の型推論あたりがくれば、Javaでも いいかなと思うが(async/awaitもほしいけど)、Kotlin for JavaScriptの存在を知って、 ちょうど、JavaScriptとかスクリプト言語を本格的に使った事なく動的型付け言語使いたくない自分にぴったしだと 思ってKotlin覚えてみようかなと思ってきた。 Kotlin,JavaScriptでググってもあんま引っかからんけど、TypeScriptとかにとって代わったりしそうじゃねぇか?? : デフォルトの名無しさん [] 2017/11/17(金) 21:21:37.83:3GAWOghK > Javaにvarなどのローカル変数の型推論あたりがくれば それ実現されるまでまってられっかよ : デフォルトの名無しさん [sage] 2017/11/17(金) 21:40:35.61:/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 をやると、他の言語がクソに見える : デフォルトの名無しさん [sage] 2017/11/17(金) 22:45:03.99:mCQOvNmw Hexe ってドイツ語で魔女って意味だな : デフォルトの名無しさん [] 2017/11/17(金) 23:45:36.46:aGWwpVlc 言語がどうのこうの言ってるうちは、まだまだだよ。 : 25 [sage] 2017/11/18(土) 00:02:14.05:oC0amP9+ kotlinから始めたら挫折して、 結局Javaの勉強再開しました。 何個かアプリ作れるようになったけどまだまだ。 Java覚えたらkotlinまで追いつきたい。 : デフォルトの名無しさん [sage] 2017/11/18(土) 00:31:51.67:ZnPkEcCx Javaで動くアプリ作れてKotlin書けないってのもわりとレアケースだと思うのだが(完全に全くJava以外の経験がないとか?) まあ個人の進度に文句もないしKotlinはしばらく逃げないので焦らずお好きにやっていただきたい : デフォルトの名無しさん [sage] 2017/11/18(土) 00:47:06.52:oC0amP9+ Javaの勉強途中でちょうどkotlinが盛り上がってて、 両方覚えられる!と欲張った結果、 なんか情報も少なく、混乱して挫折。 とりあえずJavaで慣れたらkotlinもやってみます。 : デフォルトの名無しさん [] 2017/11/18(土) 16:34:14.39:6foiYhRZ Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016 : デフォルトの名無しさん [sage] 2017/11/18(土) 16:40:27.50:d2ucUmS6 ngsw tr : デフォルトの名無しさん [sage] 2017/11/18(土) 16:53:48.97:UH67JXx8 プログラミング言語初学に向かないのは多分間違いない : デフォルトの名無しさん [sage] 2017/11/19(日) 08:38:46.28:OIO3sRlf C#のusingもJavaのtry-with-resourcesもkotlin.io.useも気に入らない GCだからC++やSwiftのようなデストラクタまでは無くてもいいけど せめて use val xx = ... のようにキーワード付き変数の場合に スコープアウトでcloseする構文を用意して欲しい 後処理の指定ごときでいちいちブロックスコープ増やすなと : デフォルトの名無しさん [sage] 2017/11/19(日) 11:36:10.68:8FVAlHGr 中括弧省略すればブロックスコープ増えないし、ほぼそれと同じ構文で書けるやん : デフォルトの名無しさん [sage] 2017/11/19(日) 11:57:19.58:2bHJHjAx そーゆークラスを作ればいい 内部的にはそうしてても使う側が意識しなきゃそれでいい : デフォルトの名無しさん [sage] 2017/11/19(日) 12:11:45.04:IcfiaN/i StackOverFlowで「○○するにはどうすればいいですか」に対して 自作の20行くらいの関数返して「こうすれば1行で書ける」とか言う回答者みたいだなw : デフォルトの名無しさん [sage] 2017/11/19(日) 13:20:53.07: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() } : デフォルトの名無しさん [sage] 2017/11/19(日) 13:22:16.49: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関数での書き方が駄目とまでは言わないが俺は気に入らない : デフォルトの名無しさん [sage] 2017/11/19(日) 14:00:39.13:uqF6CIR0 そういやjetbrainのIDEってjavaで出来てるんだよな。 kotlinで書き直されたりしてんのかな。そのへんどうなの?中の人とか? : デフォルトの名無しさん [sage] 2017/11/19(日) 14:24:47.63:OIO3sRlf どういうこと? : デフォルトの名無しさん [sage] 2017/11/19(日) 15:32:50.61:XHxD1mSV 純粋な興味で質問するんだけど その書き方で各段階のデバイスオープン不可だったとき対処できる言語ってあるの?try-catchで括っておくとかなのかな。 の下の書式は最初のデバイスがヌルが返ってきたときに雪崩式にハングしそう。 は最初にデバイスクローズして下に流れたらどうなってしまうのか。 : デフォルトの名無しさん [sage] 2017/11/19(日) 15:53:26.75:YGg5hSh9 try-with-resourcesみたいに「ここでリソース開いてるしエラーも起こりうるぞ!」って明示してくれるのが好き : デフォルトの名無しさん [sage] 2017/11/19(日) 16:35:29.23:ziYSLzJF 文句の本質的には「ブロックネスト深すぎて見かけの空白多くてキモい」ってだけだよねコレ まあ見かけはかなり重要なのだが どこでcloseが起こるかわかるほうがいいとは思うけどな ブロック深いのとは別件な気がする : デフォルトの名無しさん [sage] 2017/11/19(日) 17:52:32.52:OIO3sRlf 3例とも同じ動作想定のサンプルコードだよ オープン不可はnullでなく例外、どこで例外が起きても開いた分はcloseされる そう、キモいってだけ 実行のタイミングと順序は厳密に決まるからどこでcloseが起こるかは分かる closeの仕掛けとブロック増加が不可分なのが気に入らないという話 : デフォルトの名無しさん [sage] 2017/11/19(日) 19:48:25.52:8FVAlHGr if文で中括弧を省略できるのと一緒 : デフォルトの名無しさん [sage] 2017/11/19(日) 20:14:04.01:wMfO08BI kotlinはまず開発環境をもっと整えてほしいわ。 特にVisual Studio Codeで無料の拡張プラグインを。 JetBrainはIDEを打ってる会社なのかもしれんが・・ : デフォルトの名無しさん [sage] 2017/11/19(日) 20:34:18.95:OIO3sRlf すまんそれがどう「ほぼそれと同じ構文」に繋がるのかイメージ出来ない の例だとどうなる? : デフォルトの名無しさん [sage] 2017/11/19(日) 20:38:00.92:ziYSLzJF forを読めるが書けない これだけが毎回全く覚えられない(あの形式はレガシーであって何の意味もないと思う) イテレータでいいと思うのだが、Rangeはなにやら遅いとか言われてて憂鬱だ : デフォルトの名無しさん [sage] 2017/11/19(日) 20:49:57.92:8FVAlHGr 書いてみ : デフォルトの名無しさん [sage] 2017/11/19(日) 21:05:03.09:OIO3sRlf いや、イメージ出来ないから書いてよ : デフォルトの名無しさん [sage] 2017/11/19(日) 21:12:25.17:rL41c0pH ,185 誤 : JetBrain 正 : JetBrains : デフォルトの名無しさん [sage] 2017/11/19(日) 21:19:58.43:8FVAlHGr ifの中括弧省略と一緒と聞いて本当にわからないのであれば重症やな : デフォルトの名無しさん [sage] 2017/11/19(日) 21:50:45.20:OIO3sRlf 煽ってくる意味が分からない 具体例を示すだけだと思うんだが・・・ : デフォルトの名無しさん [sage] 2017/11/19(日) 22:15:39.30:VtdgNv5T はそんなにopenとcloseをしないといけないのはクラス設計に問題があるのではないだろうか。 そこまでしないといけないことが頻繁にあるケースはまれだと思うので、拡張関数を定義して解決しては。 あと、個人が気に入らないと思うたびに構文を増やしたらC++みたいになるのは歴史が示すところかと。 Kotlinではのケースはif式のように{}を省略することはできないような気がするのですが。 省略できても見かけのブロックがなくなるだけで、多重ネスト構造なのは変わらない気がする。 : デフォルトの名無しさん [] 2017/11/20(月) 00:57:34.61:iI7hyhyt 俺も分からないので是非書いて欲しい。 こちらはKotlin学習中なので重症ではない。単にわからないだけだ。 : デフォルトの名無しさん [sage] 2017/11/20(月) 03:18:31.42:GkhyFhEh File.open(ファイル名) do |file| 処理 end Ruby では、File.open()に、クロージャの実装である、ブロックを渡すと、 close()する必要がなくなる。 自動的に内部的に、例外処理で囲んで、finally で、close してくれる たいていの言語で、そう : デフォルトの名無しさん [] 2017/11/21(火) 07:47:12.65:UlNCYsFF JVM版とNative版など環境がいくつかあるけど、標準ライブラリは基本共通なの? : デフォルトの名無しさん [] 2017/11/21(火) 11:37:34.13:y9fg6IYd こういう風に違うシグネチャの関数の参照はどうしたら良いのか? ttps://ideone.com/jXVu5V : デフォルトの名無しさん [sage] 2017/11/21(火) 12:00:29.42:7oGfHzA7 未対応なので回避策とるくらいしか val fa = {n:Int -> f(n) } val fb = {n:Int, s:String -> f(n, s) } : デフォルトの名無しさん [] 2017/11/21(火) 12:29:26.29:y9fg6IYd あ。未対応だったのか。どうりでいくら調べても見つからないと思った。 それならそんな風に書くしかないね。 : デフォルトの名無しさん [sage] 2017/11/21(火) 13:08:24.36:7oGfHzA7 ごめん変数/引数の型指定があれば解決出来るみたい ttps://ideone.com/CzyR3A : デフォルトの名無しさん [] 2017/11/21(火) 14:11:23.59:tR+VGZDq おー。なるほど。ありがとう。 まあでも自分でシグネチャ指定して振り分ける感じに書く必要はあるということだね(Cでの関数へのポインタみたいなもんだからそうならざるを得ないか)。 : デフォルトの名無しさん [sage] 2017/11/21(火) 21:30:56.20:PjtBzSS0 コアの標準ライブラリは原則共通だが、JS, JVM(, Natevie)ごとに専用の「標準」ライブラリがある。 ttps://kotlinlang.org/api/latest/jvm/stdlib/index.html : デフォルトの名無しさん [sage] 2017/11/25(土) 13:24:58.89:x3Ny6L+y あるメソッドの中の処理を切り出して作った1行系プライベートメソッドってあるよね 親メソッドの前に書いたほうがいい? 後に書いたほうがいい? 親メソッドに長いJavaDoc、または長めのコメントがある場合、前に書いちゃうとプライベートメソッドが離れちゃって見難い/醜いよね // subするメソッド private fun subMethod() = ... /* * メインなことをするメソッド * がんばってつくりました * 3行も説明書いたのでボーナスください */ fun mainMethod(arg: SomeObj){ ... } そういう意味ではメインのあとに書いたほうがいいんだけど、親メソッド読んでる最中に見たことないメソッドが出てきちゃって「ん??」ってなるよね fun mainMethod{ ... ....subMethod(...) ← えっコレ何? } private fun subMethod() = ←定義ここかよおせーよ Java書いたことないからこのへんの作法わかんないんだけど、なにか傾向とかあるのかな : デフォルトの名無しさん [sage] 2017/11/25(土) 14:14:06.62:UdkhV+zK IDEの機能で定義に飛ぶから別に気にならない ソースファイルを上から順に眺めていくってあんまりないなあ : デフォルトの名無しさん [sage] 2017/11/25(土) 14:31:50.70:uI9d/XUE どっちでもいいけど自分は後ろ。 定義なんてIDEでジャンプできるんだしどうでもいいでしょ。 : デフォルトの名無しさん [sage] 2017/11/25(土) 22:18:25.21:x3Ny6L+y >定義に飛ぶから >定義なんてIDEでジャンプできる なんだよ (いろいろ眺めつつ)IntelliJ IDEAではF4かな。とう。おお。…さっきのとこ戻るにはどうすればいいんだろう ttps://youtrack.jetbrains.com/issue/IDEA-119474 無理か。まあいいや いや、それにしても固めて書いておく時の一般的なやり方とか見てて迷わない書き方とかあるのかなーと思って : デフォルトの名無しさん [sage] 2017/11/25(土) 23:17:25.05:O9/4xpc9 subMethodのKDocをしっかり書いておけば、ジャンプしなくてもマウスオーバーで 何をするメソッドかわかるから後置でいいのではと思う。 : デフォルトの名無しさん [sage] 2017/11/26(日) 00:38:59.47:ReeFqnN/ 戻るのはデフォルトだとたぶん Ctrl+Alt+左 定義に飛んでその後戻るのをキーボードで素早くできるようにしとかないと作業が捗らんから、 おれはどんな環境でもAlt+ピリオドとAlt+カンマにカスタマイズする たまにカスタマイズできない環境もあるが : デフォルトの名無しさん [sage] 2017/11/26(日) 01:48:55.48:uWNno6dr F4ではなくCTRL+マウスクリックじゃない? : デフォルトの名無しさん [sage] 2017/11/26(日) 02:41:23.75:ReeFqnN/ F4 は "Jump to Source" で、Ctrl+Button1 は "Decraration" だね 両方とも定義へ飛ぶけど、定義を選択して操作したときに "Decraration" のほうは使用箇所へ飛ぶメニューがでるね おれは間違えて押したときにメニューでるのが面倒なのでキーにカスタマイズして使ってるのは "Jump to Source" の方 使用箇所へ飛びたいときには Find usages を使うし : デフォルトの名無しさん [sage] 2017/11/26(日) 12:28:30.17:uWNno6dr あー F4でjump to sourceし CMD+F4 (Macの場合)でタブクローズすればいいんじゃない あと、quick definitionってのもある : デフォルトの名無しさん [sage] 2017/11/26(日) 13:15:15.98:X819E48M vimのプラグイン入れてるけどcommand+[ですぐ戻れる : デフォルトの名無しさん [sage] 2017/11/26(日) 13:19:18.06:uWNno6dr 基本はそれですね、開いたタブを同時に閉じたい場合はcloseかな : デフォルトの名無しさん [sage] 2017/11/26(日) 23:28:16.74:ReeFqnN/ Jump to SourceとDecrarationの違いを、もうひとつ見つけてしまった DecrarationはAndroid環境だとリソースIDからレイアウトXMLへ飛んだりもできるのね Jump to SourceだとリソースIDそのものの値を定義してるファイルに飛んじゃうので意味無い やっぱデフォルトはDecrarationにしよう・・・ : デフォルトの名無しさん [sage] 2017/11/27(月) 11:07:32.61:nNid/MSo haskellとか知ってると、まず宣言的コードがあって実装はあとからついてくるコードスタイルでも違和感はない。 トップダウンで見るかボトムアップで見るかの違い。 : デフォルトの名無しさん [sage] 2017/11/27(月) 14:13:27.80:NQTs/ol9 まあ、IDEさまさまなところはあるにはある IDEがなかったら全然違っていただろうなと思う事象は多い : デフォルトの名無しさん [sage] 2017/11/28(火) 17:13:53.17:tIAa+Uq8 IDEってEclipse?AndroidStudioのベータ? : デフォルトの名無しさん [sage] 2017/11/28(火) 18:39:50.36:FPBjC+Ob JetBrains製以外のIDE使ってる人居るのかな Vimは居そう : デフォルトの名無しさん [sage] 2017/11/28(火) 19:03:29.92:nX0y7tBa そら第一候補はIntelliJでしょ ≒ Android Studio : デフォルトの名無しさん [sage] 2017/11/28(火) 19:50:02.49:9tkU9YCi Eclipseとか原始時代の道具をまだ使ってるやつがいるのか : デフォルトの名無しさん [] 2017/11/28(火) 20:45:44.51:jRr2P5U7 他の言語で使えるからな : デフォルトの名無しさん [sage] 2017/11/28(火) 20:54:28.46:KE6VY8J8 Linuxなんてずっと原始時代のままだよ。 : デフォルトの名無しさん [] 2017/11/28(火) 20:58:14.84:jRr2P5U7 ん?でも Linux でも IntelliJ 使えるよ。 : デフォルトの名無しさん [sage] 2017/11/28(火) 20:59:52.92:KE6VY8J8 まだみんなviだよ。 : デフォルトの名無しさん [] 2017/11/28(火) 21:09:08.70:jRr2P5U7 ああ。まあ。確かにviってかvim使う方が多いが、さほど困らんなあ。 : デフォルトの名無しさん [sage] 2017/11/28(火) 22:43:55.76:TzRq1z8j リモートデスクトップ経由でLinuxのIntelliJ&Android Studio使ってうっひょーって言ってるよ Emacsのkotlin-modeがぜんぜんイマイチなのはIntelliJ IDEAのせいではないかと思っている : デフォルトの名無しさん [sage] 2017/11/29(水) 12:14:21.94:UK37Nyfh IdeaVimプラグインおすすめ : デフォルトの名無しさん [sage] 2017/11/29(水) 12:23:23.58:HtxXnaax 1.2がリリースですよ? : デフォルトの名無しさん [sage] 2017/11/29(水) 12:38:07.31:rN1pofYI IDEAがあるせいで他がしょぼいというより、Kotlinの歴史の浅さやまだゴミのようなシェアの割にはIDEAの出来が良いんだろ Kotlin自体がJetBrainsによってIDEAで使うために作った言語なんだから当然 : デフォルトの名無しさん [] 2017/11/29(水) 12:52:25.81:3kSmCAWV ああ。あれいいね。 : デフォルトの名無しさん [sage] 2017/11/29(水) 14:26:22.47:LyP2QHxX Kotlinはidea以外の環境を最低一つサポートしろよな。自社でIDEを売ってるからやだとかはやめてくれ。 VisualStudio Codeかatomのどっちかの軽量環境は最低どちらかサポートしろよ。 : デフォルトの名無しさん [sage] 2017/11/29(水) 15:11:26.12:xfNGuvaJ 言語提供側がすべきなのは処理系の提供であって IDE云々で文句を言うのは筋違い : デフォルトの名無しさん [sage] 2017/11/29(水) 15:12:57.24:Z0yAcQLL それは処理系に言う筋合いのものではないが。 最近のエコシステムに慣れすぎるとそう言いたくなるのはわからんでもないが。 : デフォルトの名無しさん [] 2017/11/29(水) 15:22:03.64:nwFY0Upv いや分からん : デフォルトの名無しさん [sage] 2017/11/29(水) 15:29:21.72:LyP2QHxX 使う側からしてみれば、言語提供側だろうが処理系だろうがどうでもいい。 ユーザーにとって使いやすくしたいとおもってて、他がやらないなら 最終的に言語提供側が提供すればいいだけだし。 : デフォルトの名無しさん [sage] 2017/11/29(水) 15:30:52.57:LyP2QHxX もちろん、JetBrainsの開発リソースも限られてるが、そんなの使う側からしたら それもどうでもいい。使いやすければユーザーが増える可能性あるし、使いにくければないだろう。 ただそれだけ。 : デフォルトの名無しさん [sage] 2017/11/29(水) 15:34:28.47:xfNGuvaJ 1行目からして意味が分からん 処理系が何か分かって書いているのか? : デフォルトの名無しさん [sage] 2017/11/29(水) 15:42:48.79:LyP2QHxX ごめんごめんww 「処理系」に関してはそれは完全にとちくるってた : デフォルトの名無しさん [sage] 2017/11/29(水) 15:45:22.41:LyP2QHxX >使う側からしてみれば、言語提供側だろうが処理系だろうがどうでもいい は >使う側からしてみれば、言語提供側だろうが言語提供側以外だろうがどうでもいい あたりでw : デフォルトの名無しさん [sage] 2017/11/29(水) 19:04:08.56:UK37Nyfh 時代はジェットブレインなんだよ MicrosoftのVisualStudioとかいう原始時代の道具は時代遅れ : デフォルトの名無しさん [sage] 2017/11/29(水) 19:06:37.15:azEm6Mj/ microsoftはjavaとあんまりかんけーし : デフォルトの名無しさん [sage] 2017/11/29(水) 19:26:30.80:Ut1ew1uc かんけーし : デフォルトの名無しさん [sage] 2017/11/29(水) 19:33:24.71: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 : デフォルトの名無しさん [sage] 2017/11/29(水) 21:00:19.88:FLL8HsjL あほ : デフォルトの名無しさん [] 2017/11/29(水) 21:05:55.88:9RrEnJIt 天才 : デフォルトの名無しさん [sage] 2017/11/29(水) 21:23:58.21:Vh6sORy3 骨董品UNIXより常に20年先行ってる。 : デフォルトの名無しさん [sage] 2017/11/29(水) 21:27:39.83:Vh6sORy3 MS製JVMは性能が良すぎてみなそれを使うようになり、Sunに訴えられたから捨てたんだぞ。 : デフォルトの名無しさん [sage] 2017/11/29(水) 21:53:07.67:DIMn1CuR J#だったからじゃないのか : デフォルトの名無しさん [sage] 2017/11/29(水) 21:59:56.13:DBojqp7K Name.Fooがenumのメンバーを返さないのなら、enumじゃなくてもいいのではない? : デフォルトの名無しさん [sage] 2017/11/29(水) 22:09:21.88:puYUWHlJ 今やUnix向けの開発者も揃ってVSCodeだもんなあ 開発環境ではMSには敵わないよ Kotlinは遠からずVSCodeに持ってかれるだろうけど、そうなったらJetBrainsはどうするんだろうね : デフォルトの名無しさん [sage] 2017/11/29(水) 22:24:40.91:UK37Nyfh アホすぎ ジェットブレインの開発環境を使ってないのは IT後進国の日本だけだぞ : デフォルトの名無しさん [sage] 2017/11/29(水) 22:34:19.00:X5HBmKqd そうかもしれません Kotlinで文字列の定数をまとめて扱うにはどうするのがベストですか? : デフォルトの名無しさん [sage] 2017/11/29(水) 22:41:01.71:sTR8OUxJ > 今やUnix向けの開発者も揃ってVSCodeだもんなあ を3回くらい読んで何を指してるのかなんとなくわかった サーバサイドのスクリプト言語プログラミングもVSCodeで行われることは増えた EmacsでFTPやらSSHやらして一生懸命書いてた頃とは隔世の感はある (いや、まあ、ぶっちゃけるなら、Emacs+xx-modeがVSCode+プラグインに置き換わっただけではあるが) VSCodeはElectronを捨てることができた瞬間に勝利が確定する : デフォルトの名無しさん [sage] 2017/11/29(水) 23:18:26.84:WrxHm4nG 資金力ではMSに太刀打ちできるはずのないJetBrainsはGoogleに買収されるべきなのだろうか。 むしろMSはJ#の時代から.NETさらには最近のXamarinの買収まで一貫してJavaに敵対的だよね。 めでたい。 : デフォルトの名無しさん [sage] 2017/11/30(木) 00:12:49.49:B6eqzLgy 捨てたらもうそれVSCodeじゃない気がw : デフォルトの名無しさん [sage] 2017/11/30(木) 01:09:11.23:Ok7wKsk4 Javaからの見え方を気にしないのならこれでもいいかな? object Name { val Foo = "foo" } : デフォルトの名無しさん [sage] 2017/11/30(木) 01:58:01.88:M/qZYVPC なるほど、これでいっぱいval書いたら良さそうですね ありがとうございました : デフォルトの名無しさん [sage] 2017/11/30(木) 03:05:42.40:4Ii001tY おまえなんにも知らないんだな : デフォルトの名無しさん [sage] 2017/12/02(土) 18:09:11.30:hkowUbEW IntelliJをバージョンアップしたらSpekテスト設定のSpec欄ヨコのSearch by Nameが動かなくなった これまではモジュール適当に指定したら勝手に探して候補出してくれてマウスぽちぽちで済んだのだが、なんかspec欄を自力入力で埋めないといかん それともこれは普通は使わない所だったのだろうか : デフォルトの名無しさん [sage] 2017/12/03(日) 14:17:27.57:KOJqmKfW 多分日本で俺だけだろうけど、 Kotlinの公式PDFはフォントのAlignがずれてて 読み始めて1分しない内に直視に耐えられなくなってしまう…。 直そうと頑張ってみたが有料ソフト使うしかないみたいで諦めた。 しかし治ってたら嬉しいなと定期的にダウンロードし直してしまう。 : デフォルトの名無しさん [sage] 2017/12/03(日) 16:45:59.74:CjASQeE2 "sourcefiles"という名の.ktソースファイル名一覧ファイルを作り、 kotlinc @sourcefiles を走らせると、 error: source file or directory not found: @sourcefiles が画面に表示されてしまいます。 javac @sourcefiles scalac @sourcefiles に相当する機能はkotlincには無いのでしょうか? : デフォルトの名無しさん [sage] 2017/12/03(日) 19:45:07.83:daSNjmBL 質問の答えは知らないので他の人に任せるけど ビルドはkotlinc直よりGradle使うことを勧める : デフォルトの名無しさん [] 2017/12/03(日) 20:02:35.94:8YyVv9+M またそんなこと言って。 あなたはいつも他人任せね。 いいかげん私も待ちくたびれちゃうわ。 : デフォルトの名無しさん [sage] 2017/12/03(日) 20:37:07.64:1V67aEN5 なんで女言葉なの? : デフォルトの名無しさん [] 2017/12/03(日) 22:21:28.14:8rz+kd7O だって女と思わせた方が答えが出やすいんですもの : デフォルトの名無しさん [sage] 2017/12/03(日) 23:10:58.68:D7S9aojy 正しい 可能ならIDE使って欲しいけどね いまはgradle安定 : デフォルトの名無しさん [sage] 2017/12/03(日) 23:18:52.67:CdnEE9AY Gradle, Vagrant は、yaml, XML, JSON のような、単なる設定ファイルではなく、 それ自体が、Groovy, Ruby の、クロージャ・ブロックで囲まれた、 スコープを持つソースコードであるから、変数宣言や処理も書ける : デフォルトの名無しさん [] 2017/12/04(月) 00:39:28.22:1VMjnc7g 逆におっさんにしかみえん : デフォルトの名無しさん [sage] 2017/12/04(月) 18:53:03.40:wtgBoDUa キモい たとえ女だとしてもキモい。やるならもっと自然な文体にしてくれww : デフォルトの名無しさん [] 2017/12/04(月) 18:54:32.14:nKJqxEpH うふ : デフォルトの名無しさん [] 2017/12/04(月) 20:08:06.27:4Cie7nT5 (´・ω・`)うふふ : デフォルトの名無しさん [sage] 2017/12/04(月) 20:18:46.16:s6dQomLc リアルの女と接点がなく、妄想で女はこうだろうと決めて話してるのがわかる 昭和生まれのジジイですわ : デフォルトの名無しさん [sage] 2017/12/04(月) 20:51:56.16:59vQQL00 謎のマジレスマンが居ますね : デフォルトの名無しさん [sage] 2017/12/04(月) 22:06:40.20:dW7+efaY マジレズマン : デフォルトの名無しさん [] 2017/12/04(月) 22:11:31.07:GD7rAYrg マジレスマンつまらないわね : デフォルトの名無しさん [] 2017/12/05(火) 00:40:05.91:AwrHp2sF (´・ω・`)ほんとよね : デフォルトの名無しさん [sage] 2017/12/05(火) 00:49:05.55:6UYDf8NM Kotlin Advent Calendar がAndroid以外の話題多めだな ここでナチュラルにIntellijIDEA の話題だしちゃったけど Android以外の人も IntellijIDEA を買って使ってるのかねえ? : デフォルトの名無しさん [sage] 2017/12/05(火) 01:18:19.27:LDxS5CId 12/18にこの本が出るようだ。Amazonには本の表紙画像がまだ出ていない。 Androidアプリ開発のためのKotlin実践プログラミング ttp://amzn.asia/4GO28m2 : デフォルトの名無しさん [sage] 2017/12/05(火) 07:55:54.23:y4Wcjyaa KotlinはAndroidが対応したってだけでそのためだけに使う人は少数派やろ : デフォルトの名無しさん [] 2017/12/05(火) 09:05:47.31:lXQHSkZJ いやあ、しかし楽にはなりそうだからねえ、流行ると思うけどねえ。 : デフォルトの名無しさん [sage] 2017/12/05(火) 09:10:49.28:AdXR2ViJ なんだ秀和システムか : デフォルトの名無しさん [sage] 2017/12/05(火) 09:18:48.22:jRPOQw5f なぁーんだ : デフォルトの名無しさん [sage] 2017/12/05(火) 09:23:34.28:LGaiibyR Adobe readerじゃダメなの? : デフォルトの名無しさん [sage] 2017/12/10(日) 18:15:48.13:kwrbJZOe これってアフィリンクなの? ttps://www.amazon.co.jp/dp/479805366X/ref=cm_sw_r_cp_ep_dp_UlxjAbA4FDHWD : デフォルトの名無しさん [sage] 2017/12/10(日) 21:26:30.38:x9bbNSCq cmで始まってdpで終わってるからどこかのレビューページから飛んだURLだと思うんだが なにもしないとcm_cr_dpなんだけどな cpが入ってるってことは「この商品を見た後に買っている」を1回表示してるのかもしれない : デフォルトの名無しさん [sage] 2017/12/10(日) 21:39:59.60:J3Wk9KR3 cm_sw_ ... _dp はシェア用URLの生成形式だね ツイッター用ならcl_twで超わかりやすいんだがr_cp_epはなんだろう : デフォルトの名無しさん [] 2017/12/11(月) 06:07:16.82:Vu+apVrY それはわからんがのリンクはAmazonで「シェアする」のリンク使って出てきたURLだよ。誰がやっても同じになると思う。 : デフォルトの名無しさん [sage] 2017/12/11(月) 23:34:54.18:5wm6MhH6 lateinit var value: Int って書いたら'lateinit' modifier is not allowed on properties of primitive typesのエラーになるんですが、 どう書き直したらいいんでしょうか var value: Int? = null って書いて、 if (value == null) { value = initValue() } ってするしかないんでしょうか。 : デフォルトの名無しさん [sage] 2017/12/11(月) 23:52:46.83:1muH/1X2 プリミティブ型にlateinitは必要ないからつけられない : デフォルトの名無しさん [sage] 2017/12/11(月) 23:53:52.52:jDa4LF1V 試してないけど var var value by { var value: Int } ではだめ? : デフォルトの名無しさん [sage] 2017/12/11(月) 23:55:33.20:Q0kTyulb で、一番いい入門書は? : デフォルトの名無しさん [sage] 2017/12/11(月) 23:55:50.41:jDa4LF1V ペーストに失敗したorz var value by { initValue() } : デフォルトの名無しさん [sage] 2017/12/11(月) 23:58:47.24:jDa4LF1V 自分はスタートブックを推す。 Javaを知っていることを前提としない入門書の存在を自分は知らない。 : デフォルトの名無しさん [sage] 2017/12/12(火) 00:03:08.61:UCmbxn8n 慌てて修正したらlazy落としていたorz orz var value by lazy { initValue() } 連投申し訳ない。これで違っていたら目も当てられんが、それもすみません。と誤っておきます。 : デフォルトの名無しさん [sage] 2017/12/12(火) 00:09:53.79:LMcO3gTk 答えはこれです : デフォルトの名無しさん [] 2017/12/12(火) 00:45:23.57:GdvZGdbs Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016 一番良いもクソも無い。 この1冊しか出ていないだろ : デフォルトの名無しさん [sage] 2017/12/12(火) 01:14:31.08:YJZ1oHv9 他もあることはあるよ ttp://www.kohgakusha.co.jp/books/detail/978-4-7775-2029-9 : デフォルトの名無しさん [sage] 2017/12/12(火) 01:17:20.30:yvEMt4M/ ありがとうこの世界の片隅にうちを見つけてくれて : デフォルトの名無しさん [sage] 2017/12/12(火) 04:02:58.46:0dOBEVV8 アスペは質疑応答解説に使えねーなーもう なぜ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で書けるので好まれることが多いみたいだね : デフォルトの名無しさん [sage] 2017/12/12(火) 06:12:22.97:GdvZGdbs 長澤太郎の本に書いてあるけど、 lateinit は、DI(Dipendency Injection)か、ユニットテスト時か、 フレームワークが自動的に初期化すると、不都合な場合に使う : デフォルトの名無しさん [sage] 2017/12/13(水) 04:15:38.26:v+2UW/cD オワコトリン : デフォルトの名無しさん [sage] 2017/12/13(水) 09:19:22.05:XdGkiBLZ 美少女仮面ポワトリン : デフォルトの名無しさん [sage] 2017/12/13(水) 23:27:28.97:UM/lzC7r シュシュトリアン : デフォルトの名無しさん [sage] 2017/12/13(水) 23:37:55.76:Cx01t7px 技術の話ができないアスペルガーがまた暴れてるのか : デフォルトの名無しさん [sage] 2017/12/14(木) 03:21:54.60:fsO62Lbi 正直、ダジャレを理解できるのは都会人だけ。 : デフォルトの名無しさん [sage] 2017/12/14(木) 04:38:45.38:a/3Oigfw 2017年プログラミング言語アワード候補はCとKotlin ttps://news.mynavi.jp/article/20171212-554317/ : デフォルトの名無しさん [sage] 2017/12/14(木) 06:24:48.79:Ba6lMueX でもCの方が有力って書いてあるね。Cは何で増えんたんだろう。 : デフォルトの名無しさん [sage] 2017/12/14(木) 06:50:37.29:Zv9+113v ttps://ideone.com/Pfncvl これなんでデフォルト値が使用されないんですか? : デフォルトの名無しさん [sage] 2017/12/14(木) 07:40:22.43:v/ZRkoO2 デフォルト値はコンパイラが定義参照してるだけで、 型にもインスタンスにも持って無いから変数に入れた時点で使えないよ fun f1(n: Int=1) { print(n) } val f2 = ::f1 f1() //OK f2() //コンパイルエラー : デフォルトの名無しさん [sage] 2017/12/14(木) 07:51:51.32:Zv9+113v 理解しました、ありがとう : デフォルトの名無しさん [sage] 2017/12/14(木) 08:06:24.80:oXimKAa7 Cが必要なレベルの仕事の割合自体は 減ってるはずなのに…謎だ : デフォルトの名無しさん [sage] 2017/12/14(木) 09:49:51.95:DkrsR4qN Cでググってもノイズが拾われてくる率が高い 他のCと間違われてるんじゃないのか : デフォルトの名無しさん [sage] 2017/12/14(木) 10:12:12.59:rSG8ExGM Cの半分はC++という時代があったからな Cの半分はC#とC++ということでも不思議はない C sharpならC#確定なのだが : デフォルトの名無しさん [sage] 2017/12/14(木) 10:35:46.55:LuQDs4YA C++はcocos2dやUnrealでのゲーム開発とかあるけどCはなんだろうな 廃れることはあり得ないけど : デフォルトの名無しさん [sage] 2017/12/14(木) 11:38:25.42:DkrsR4qN 機械学習とかロボティクスとか自動運転とかがメディアで取り上げられるようになって学生にプログラミングへの関心がいっそう高まって教育現場での採用が増えてるのかもしれないな 就職にも有利なスキルだろうし もともと人気の高い言語だし本格的なプログラミングの登竜門的な立ち位置の言語でもあるし : デフォルトの名無しさん [sage] 2017/12/14(木) 12:12:41.91:oEBjPr7B IoTかな : デフォルトの名無しさん [] 2017/12/14(木) 21:38:11.42:5ZTCzvqn (IoT) ↑ こうすると顔文字になるよね : デフォルトの名無しさん [sage] 2017/12/14(木) 22:23:38.53:55Q0ymnI 検索エンジンで+"C programming" で検索した結果参照してるだけだからな 単にデータとしてうんこオブうんこだ githubやstackoverflow読んでるIEEEのランキングのほうがなんぼかマシ : デフォルトの名無しさん [sage] 2017/12/19(火) 10:24:09.99:f5KBk+Xr Javaの無名スコープを表す構文が無いことから調べていってみたけど 色々と良く設計されてると感心した 構文が無い代わりにrun関数がある ラムダ生成コストやブロック内でのreturnが気になったけど inline関数に渡すラムダはそれごとインライン化されるため コストも無くreturnはちゃんと呼び出し元関数から抜ける そうするとinlineでない関数にラムダを渡す場合のreturnとで 区別出来なくて危険かと思ったけど inlineでないラムダではラベル無しreturnが禁止されていた returnにラベル必須だと面倒ではと思ったけど 最後のステートメントが戻り値になる仕様だからむしろ楽だった : デフォルトの名無しさん [sage] 2017/12/19(火) 10:25:19.69: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 //ここには来ない } : デフォルトの名無しさん [sage] 2017/12/19(火) 10:28:08.70: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キーワード無し } } : デフォルトの名無しさん [] 2017/12/20(水) 02:29:53.61: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){/*処理*/} なんか、どれもしっくりこない。どうするのが正解なの.... 誰か教えて!お願いします! : デフォルトの名無しさん [sage] 2017/12/20(水) 03:07:01.09:vJEKLhBA if (map.getOrDefault("hoge", false)) { ... } とか。 うーん。なんか変だね。mapOf では nullable かどうか判定しているのに get 時には nullable かどうかの情報が抜け落ちているような。 : デフォルトの名無しさん [sage] 2017/12/20(水) 03:12:58.65:O14cUYGW 1はmap["hage"]とか存在しないキー指定すると落ちるだろ 2はエルビスで落ちないようになってて 3が落ちないのは、 ここ ttps://kotlinlang.org/docs/reference/equality.html Structural equality あたりに書いてある仕組みのせいかな どうmapを使えばいいのかは知らん : デフォルトの名無しさん [sage] 2017/12/20(水) 03:15:09.91:O14cUYGW 知らんが、kotlinみたいな言語だとキーが無いときの処理を適当にごまかすわかにはいかんだろ : デフォルトの名無しさん [sage] 2017/12/20(水) 03:31:33.35:nn3v7K50 >強制的に!!でNotnullにする。でもなんか気持ち悪い。 >if (map["hoge"]!!){/*処理*/} そもそも、map は、そのキーが存在しない場合もあるのが、当たり前だろ。 そのキーが存在するかどうかを、チェックするメソッドもある 君が仕様・設計を考えるんだ。 1. そのキーが存在した場合の処理と、 2. 存在しなかった場合の処理 初心者は、強制変換の使い方をわかっていないのだから、!! を使うな : デフォルトの名無しさん [sage] 2017/12/20(水) 03:56:24.26:MahKH8pr +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() } : デフォルトの名無しさん [sage] 2017/12/20(水) 04:24:12.03:MahKH8pr 寝起きで書いたら!=がくっついた if (mapValue != null && mapValue) { doSomething() } まだ頭寝てるので動作チェックしてないから細かいとこは適当に直したりしてくれ 安易に nullableValue?.let{ ... } を使って欲しくないのも似たような感じ 今回で言うと現在のmapに"hoge"が登録されていることの保証はどうするんだろうと思う ぬるぽ出ると追うのもしんどいわけでさ 1行で済むし動作にも影響らしい影響はないんだから脳死状態で checkNotNull(...){ "やべえhoge登録されてねえ" } とか書いとくのおすすめしたいわ : デフォルトの名無しさん [sage] 2017/12/20(水) 07:46:04.79:nn3v7K50 map, hash は、集合の概念だから、 集合A に属するか属さないか、のどちらかの状態をとる 1. そのキーが集合A にあれば、値が取得できる 2. そのキーが集合A になければ、値が取得できない 1, 2 で、君がどういう処理をするか、仕様・設計を決めるのは君! : デフォルトの名無しさん [sage] 2017/12/20(水) 07:49:29.92:f5FKKl5l Bでいい 一番上とは意味論的に異なる : デフォルトの名無しさん [sage] 2017/12/20(水) 12:00:57.83:f5FKKl5l Bがバカっぽいと感じるのは 真偽値 == 真偽値 だと勘違いしているから 実際には2つのNullableTypeの等値比較 : デフォルトの名無しさん [sage] 2017/12/20(水) 13:02:21.99:G3r13eVw if(map.getValue("hoge")){/* 処理 */} これで基本的にキーが存在しないと例外に行くしシンプルだね : デフォルトの名無しさん [] 2017/12/20(水) 13:25:19.85:g9yiCifS 直感的にはおかしく感じるな。(最初結果見た時は驚いたw) ttps://paiza.io/projects/zLCe3AYlPO9luQp7z2NaIw しかしクラスの参照同士の比較なのでこれで良い。 : デフォルトの名無しさん [] 2017/12/20(水) 13:51:27.51:cc5ffQEu 322です。 こんな速くレスいっぱい貰えるとは....皆ありがとう! 基本的にNullチェックは必須なんだね そういうことか!あくまで等値比較なのかー >感が方がJavaっぽい これやったんだけど、あんまりキレイな感じしないし、何よりJavaっぽくて.... そのメソッド知らなかった。使ってみます。 : デフォルトの名無しさん [sage] 2017/12/20(水) 13:54:26.10:f5FKKl5l おかしく感じたのはprintln("True")と書いたからじゃないの not False と True は同義でないよ ttps://paiza.io/projects/1WgctVAqXu8SWmlIYtx4YA : デフォルトの名無しさん [sage] 2017/12/20(水) 13:58:37.66:QHJO7UtC おまえがそう思うのならそうなのだろう。おまえの中ではな。 : デフォルトの名無しさん [] 2017/12/20(水) 15:20:49.03:g9yiCifS not false が true でない? じゃあなに? : デフォルトの名無しさん [sage] 2017/12/20(水) 16:11:14.74:skPFcOgX このコードだとFalse以外のAnyでは : デフォルトの名無しさん [sage] 2017/12/20(水) 16:17:54.73:f5FKKl5l とのコードが示すように Nullable(null)もStringも真偽値ではないため falseとtrueどちらにも等値でない falseでない真偽値はtrueだが falseでない値はtrueとは限らない 「True, null」だから違和感が有って 「not false, null」なら無かったのでは : デフォルトの名無しさん [sage] 2017/12/20(水) 16:28:57.34:f5FKKl5l リンク先のコード消えてるよ 同じ接続元・同じURLで開くと変更モードになるようだから 「新規コード」を押してから扱わないといけない : デフォルトの名無しさん [] 2017/12/20(水) 18:13:04.50:oPcnMRgu ごめん。うっかりしていた。 で、書き直してグレードアップしたよ。 ttps://paiza.io/projects/KX6WsUduUz1OoV0sEOwyTw : デフォルトの名無しさん [sage] 2017/12/20(水) 18:27:37.40:AIjICjtT 糞みてえな言語だな : デフォルトの名無しさん [sage] 2017/12/20(水) 18:40:45.87:GLW9SuF+ Xamarin程の糞はない : デフォルトの名無しさん [sage] 2017/12/20(水) 21:01:27.13:SZt84l7a 糞だからこそ良い : デフォルトの名無しさん [sage] 2017/12/25(月) 05:24:40.47:CQjgWB2v やはりJavaを超えられなかったか。 : デフォルトの名無しさん [sage] 2017/12/25(月) 09:22:20.35:pKfklu/G \ ∩─ー、 ==== \/ ● 、_ `ヽ ====== / \( ● ● |つ | X_入__ノ ミ そんな餌で俺様が釣られクマ―― 、 (_/ ノ /⌒l /\___ノ゙_/ / ===== 〈 __ノ ==== \ \_ \ \___) \ ====== (´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;; ズザザザ : デフォルトの名無しさん [sage] 2017/12/25(月) 14:41:12.11:eNXAkvu4 ちょまど神への信仰が不足しているか背教者ですね : デフォルトの名無しさん [] 2017/12/28(木) 18:16:09.77:xKYb+xvk の本は何故か新品よりも高い中古がもう出ているw (値段のタイプミスか?) : デフォルトの名無しさん [sage] 2017/12/28(木) 20:08:10.60:g7xH4Ri4 購入者の確認不足や品切れ時にたまたま買われることを狙った有名な詐欺だよ : デフォルトの名無しさん [] 2017/12/29(金) 01:04:43.78:05sEmydS 確かに可愛いがムネ大き過ぎ。 D,EかせめてFカップなら信者になってた。 : デフォルトの名無しさん [sage] 2017/12/29(金) 10:11:40.46:RRbpiG2U 盛ってるから問題ないで : デフォルトの名無しさん [sage] 2018/01/10(水) 07:01:15.70:IyW1fpec classのdelegateってinterfaceしか出来ないみたいだけど、 classやabstractのインスタンスでdelegateできない理由をご存知の方いらっしゃいますでしょうか。 可: class SubClass(instance: Interface) : Interface by instance 不可: class SubClass(instance: SuperClass) : SuperClass by instance : デフォルトの名無しさん [sage] 2018/01/10(水) 07:32:55.52:IyW1fpec もちろんSuperClassはopen指定してあります。 に答えられる人にそんな野暮なこと言う方はいないと思いますが念のため。 In Actionには「インターフェースを実装しいているなら〜」とさらっと書いていて クラスでdelegateできない理由は触れられていませんでした。 : デフォルトの名無しさん [sage] 2018/01/10(水) 21:04:38.05:CUBllmbw androidにdelegateなんて言葉はない : デフォルトの名無しさん [sage] 2018/01/10(水) 22:52:38.58:68cAMYmT 例えばこんな感じのKotlinコードをJavaへ変換してみればわかる interface Interface1 { ... } interface Interface2 { ... } class SubClass (impl1:Interface1, impl2:Interface2) : Interface1 by impl1, Interface2 by impl2 : デフォルトの名無しさん [sage] 2018/01/11(木) 06:56:39.64:irxu1jkK ありがとうございます。 interface Interface1 { ... } が open class Interface1 { ... } であったとしても、 class SubClass extends Interface1 implements Interface2 になるので、支障ないと思うのですが、どこか勘違いしていますでしょうか。 : デフォルトの名無しさん [sage] 2018/01/11(木) 07:43:33.12:rggai+wG ごめん多重継承は関係無かったね 問題になるのはコンストラクタかな class SubClass extends SuperClass というJavaコードに相当するものに変換されるからには SuperClass のコンストラクタを呼ぶ必要があるけど、 でも SuperClass by instance によってインスタンスが別に渡されたらSuperClassの実体が二つになってしまう : デフォルトの名無しさん [sage] 2018/01/11(木) 10:00:24.62:J2rrbjux インターフェースでないと移譲が保証出来ないからでは インターフェースと違ってクラスの場合はそれが持つオーバーライド可能なメンバ全て移譲しても移譲になるとは限らない 例えば、あるライブラリがInterface, SuperClass, それらを引数に取る関数を提供しているとする Interfaceを受け取るならInterfaceとして扱うべき (内部の実装クラスへダウンキャスト出来ること等を前提とすべきでない)で、 SuperClassを受け取る場合も同様だが こちらはprivateメンバへのアクセスなども含まれていてそれは移譲出来ない : デフォルトの名無しさん [sage] 2018/01/12(金) 02:36:59.71:EycqiUrc abstractやclassじゃextendsになっちゃうじゃん したいのはimplementsじゃん だからOnly interfaces can be delegated toって言われちゃうんだよ : デフォルトの名無しさん [sage] 2018/01/12(金) 17:51:43.69:to65cpCS の言いたかったこととは違うかもしれませんが、以下のように理解しました。 KotlinのdelegateはIn ActionではCollectionを引き合いに出しているが、 実際には、実装したクラスのコンストラクタがprivateで、 ヘルパークラスのファクトリメソッドを通じてしかインスタンスを生成できない ようなケースで力を発揮する。 コンストラクタがpublicでopenなclassやabstractの場合、素直に継承することを想定している。 In Actionの例も(共変とか反変とかを抜きにすれば)実はArrayListの継承で解決できる。 逆に、classでのdelegateを認めるとfinalなclassも継承できてしまい、 これを禁止するために規則を増やすことになる。 書き込んだ動機としては、多数のプロパティを持ったクラスを継承したい時に、 class SuperClass(val comp1: Comp1, val com2: Comp2, ...) class SubClass(instance: SuperClass) : SuperClass(instance.comp1, instance.comp2,...) とすると、かなり宣言が不格好になるので、 class SubClass(instance: SuperClass) : SuperClass by instance としたかったのです。 SuperClass内のSuperClassを引数に取る関数は、 SubClassにおいても引数としてSuperClassを渡せば正しく動作するので、 private(あるいはprotected)メンバへのアクセスがなくても、 実装可能でないかと思います。 ご指摘で理解できていない点があればご指摘いただければ幸いです。 皆様ありがとうございました。 : デフォルトの名無しさん [] 2018/01/12(金) 19:14:43.07: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 こういうのじゃだめなの? : デフォルトの名無しさん [sage] 2018/01/12(金) 22:32:24.26:to65cpCS 自分が作ったクラスの場合ならそうできることは考えましたが、 他人がinterfaceを定義せずに作ったクラスでやりたい場合どうすればいいんだろうという疑問でした。 : デフォルトの名無しさん [sage] 2018/01/13(土) 08:10:52.44:9rLeDqe4 Java, C# が、interface を作った理由は、 C++ のclass の、ひし形の形になる、ダイヤモンド継承を嫌ったから ほとんどの言語は、単一継承 + interface。 継承チェーンに、同じクラスが現れると困る 親クラス ← 子クラス1・2 ← 孫クラス 孫クラスが、子クラス1・2を多重継承すると、 両方の子クラス部分に、親クラスのメンバ変数を含んでしまう 孫クラスからすると、どちらの子クラス経由で、 親クラスのメンバ変数にアクセスすべきか、ややこしい だから多重継承用に、メンバ変数を持たず、メソッドだけを持つ、interface が作られた is-a・class・継承よりも、has-a・interface・委譲の方が、柔軟性があって好まれる : デフォルトの名無しさん [sage] 2018/01/13(土) 10:05:52.35:RtHYbtnJ 複数のinterfaceでメソッド名が被ってたらどうするの? : デフォルトの名無しさん [sage] 2018/01/13(土) 10:11:05.35:i594883x そんな事態見たことないけど確かにどうなるんだ? : デフォルトの名無しさん [sage] 2018/01/13(土) 10:23:17.39:Rp7yFlms パッケージ名とinterface名で指定するんじゃね : デフォルトの名無しさん [] 2018/01/13(土) 11:09:24.85:rLmRRKlD 実装はサブクラス側でやるんだからどうもなんねーだろ : デフォルトの名無しさん [sage] 2018/01/13(土) 12:17:34.58:7idPsqBM delegataion 使った みたいなので Interface1 と Interface2 に同じメソッドが定義されている場合にはエラーになるけど、 SubClass で override しろって IDE が言ってくるので、それすればエラーは消える delegatation 使わないのなら が言うようにサブクラスで実装するんだから関係無いね : デフォルトの名無しさん [sage] 2018/01/13(土) 12:18:29.46:7idPsqBM Delegataion ってなんだ・・・Delegation ね : デフォルトの名無しさん [sage] 2018/01/18(木) 20:57:21.62: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.とかついてるのですが、これはなんなんでしょうか?? : デフォルトの名無しさん [sage] 2018/01/18(木) 22:13:56.56:h6w5lyYQ block内でのthisがその型のインスタンスになる 例 ttps://ideone.com/KsS26N : デフォルトの名無しさん [sage] 2018/01/18(木) 22:42:32.43:uaAP/nEg ありがとうございます。 うーん。ややこしい。何のためにこんなのが必要なんだ・・ 呼び出される関数の方でもインスタンス(val a = A("aa"))を作って 関数を呼び出さないといけないってことですよね。 : デフォルトの名無しさん [sage] 2018/01/18(木) 23:47:50.82:h6w5lyYQ 基本的にはDSL用の機能だと思う ttps://ideone.com/CGz7Fp ttps://kotlinlang.org/docs/reference/type-safe-builders.html : デフォルトの名無しさん [sage] 2018/01/22(月) 22:47:52.97:FT3BkIDm delegateってパフォーマンス悪かったりします? のような方法を試したら、目に見えて遅くなりました。 もっとも他にも色々いじった後だから、他が原因の可能性もありますが....。 : デフォルトの名無しさん [sage] 2018/01/23(火) 18:27:08.00:himcush7 仕組み的に体感出来る程の劣化は起きないと思う : デフォルトの名無しさん [] 2018/01/23(火) 19:46:07.93:leMx6cGU エルビス式のエルビスって何ですか?プレスリーしか出てこないんですけど : デフォルトの名無しさん [sage] 2018/01/23(火) 19:47:46.14:leMx6cGU と思ってググったら本当にプレスリー由来だったのね、、 : デフォルトの名無しさん [sage] 2018/01/23(火) 23:26:39.49:9+CEbA1m 調べてみたら、delegateよりも前に速度低下はあったようでした。ありがとうございました。 : デフォルトの名無しさん [sage] 2018/01/24(水) 07:00:29.98:YOaqJu3C ?: これのどこがプレスリーなんだよ?と思った時の脳内に浮かんでいたのはサタデーナイトフィーバーの人だったのは俺だけだろうな : デフォルトの名無しさん [] 2018/01/24(水) 09:46:01.11:yQK5cwW2 ?:) : デフォルトの名無しさん [sage] 2018/01/24(水) 12:18:03.47:wZvPOi0Q ?が5 : デフォルトの名無しさん [sage] 2018/01/31(水) 15:59:06.95:4N9XMFe/ だけど Javaのリリースサイクルが6か月ごとになったので2018/3/20リリース予定 ttp://openjdk.java.net/projects/jdk/10/ ローカル変数の型推論きたー 後はGoogleさん早めにAndroidで使えるように。 : デフォルトの名無しさん [sage] 2018/01/31(水) 16:05:14.51:4N9XMFe/ 後はkotlinを使ってみて自分的にうらやましのは ・Null safety ・1ファイルに複数のクラス書ける ・コルーチン ぐらいかな・・ : デフォルトの名無しさん [sage] 2018/01/31(水) 18:17:51.93:hwMh3j1W 俺は ・val ・最後の引数のラムダを括弧の外に書けること ・「==」でnull考慮込みのequals()呼び出しにしてくれること : デフォルトの名無しさん [sage] 2018/01/31(水) 18:53:28.83:F5No3k5g とにかくJavaと同じことをするのに記述量が圧倒的に少なくて済むのが良いわ。 一つ一つはそれこそ数行程度の違いになるけど、チリが積もって最終的にかなり短くなって可読性が段違い : デフォルトの名無しさん [sage] 2018/01/31(水) 20:20:09.40:CrWRl7VR Sから始まる某言語と違って何故か読みやすい : デフォルトの名無しさん [sage] 2018/01/31(水) 20:58:06.42:UVbJv7LF Smalltalkの悪口はやめろ : デフォルトの名無しさん [sage] 2018/01/31(水) 21:14:03.77:AX72W1bb 俺のS言語が・・・ : デフォルトの名無しさん [sage] 2018/01/31(水) 23:02:47.38:Mw3vWzBx SQL : デフォルトの名無しさん [sage] 2018/02/01(木) 07:20:22.31:d+x91pir Objective-Cを経験すれば大抵の言語は涙が出るほど読みやすい : デフォルトの名無しさん [sage] 2018/02/01(木) 07:42:19.46:XxNDw1fe Schemeの悪口? : デフォルトの名無しさん [sage] 2018/02/01(木) 08:58:05.91:0qxcm1IL perl「せやな」 : デフォルトの名無しさん [sage] 2018/02/01(木) 23:11:28.90:PazMLs1n 現役言語じゃないからもう新たに触ることないしなあ : デフォルトの名無しさん [] 2018/02/01(木) 23:15:10.58:oMkeAueE そういえば Objective-C ってMacとかiOSで使われてるんだっけ? : デフォルトの名無しさん [sage] 2018/02/01(木) 23:28:46.21:xVAl4gBi MacとかiOSでしか使われていない : デフォルトの名無しさん [sage] 2018/02/02(金) 01:47:08.99:sNIUDAKb SwiftはiOSでしか使われていない : デフォルトの名無しさん [sage] 2018/02/02(金) 05:20:56.67:s78i1eOK いくらいい言語でも林檎様の傘下だと何されるかわからんからな 使えねーわ : デフォルトの名無しさん [sage] 2018/02/02(金) 07:12:32.55:gnaQFUD2 swiftってオープンソースじゃなかったっけ? : デフォルトの名無しさん [sage] 2018/02/02(金) 08:41:42.94:V6ypn24z Swiftはオープンソース化以降は言語開発もコミュニティベースで行われてる 頑張ってはいるようだけどいくつかの問題でObjCに戻る人も割と居るし クロスプラットフォーム系との競合もあって人気は減少傾向 : デフォルトの名無しさん [sage] 2018/02/02(金) 08:43:29.60:2JRgrNpV Kotlinの方がよくできてる : デフォルトの名無しさん [sage] 2018/02/02(金) 09:20:26.67:V6ypn24z Kotlinでのクロスプラットフォームは Kotlin/Native(まだベータ) と Multi-OS Engine があるけど UI部分が固有になるから React NativeのKotlin版のような UIブリッジするライブラリが生まれてほしい WebViewも手だけど : デフォルトの名無しさん [sage] 2018/02/02(金) 09:22:41.58:V6ypn24z JavaScriptエンジンを挟みたくない : デフォルトの名無しさん [sage] 2018/02/02(金) 12:06:11.99:jTuMDwxk C#でええやん : デフォルトの名無しさん [sage] 2018/02/02(金) 12:35:18.11:V6ypn24z コミュニティの条件に収まらなくてサブスクリプションが要る都合でそっちは二の足 言語自体は割と好きだけど : デフォルトの名無しさん [sage] 2018/02/02(金) 19:53:43.35:YRu1rdgq 何年か前はiOSとandroidのクロスプラットフォーム開発はいまいちすぎて結局それぞれネイティブて開発したけど、今はどうなんだろうな 最近スマホアプリさわらんからよくわからん : デフォルトの名無しさん [] 2018/02/02(金) 21:37:32.04:00GaqTOE あ、そうだ。iOSやMacの開発にKotlin使えれば全て丸く収まるじゃねえか。 MacだけならJREあるから既に動くのかな? : デフォルトの名無しさん [sage] 2018/02/02(金) 21:43:50.82:zvuXw/YQ Android studioはMac版もあるし当然Kotlinも使える ただ、iPhoneアプリは作れねぇ : デフォルトの名無しさん [sage] 2018/02/02(金) 22:32:37.72:iI1eaKOA MacとiOSはMacが無いとコンパイルすら出来ないって糞みたいな仕様が一番のネックだからな : デフォルトの名無しさん [sage] 2018/02/02(金) 22:38:07.24:zvuXw/YQ Windowsもネイティブアプリはそうだろ? 違うっけ? : デフォルトの名無しさん [sage] 2018/02/02(金) 23:17:28.47:2JRgrNpV クロスプラットフォームは糞 : デフォルトの名無しさん [sage] 2018/02/02(金) 23:39:49.14:4J1UtiB3 Xamarin C#が正解 : デフォルトの名無しさん [sage] 2018/02/03(土) 00:17:14.67:Pk3rL+mD ちょまど教の狂信者か : デフォルトの名無しさん [sage] 2018/02/03(土) 02:29:40.70: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エンジニアは全員死んだ方が良い : デフォルトの名無しさん [sage] 2018/02/03(土) 08:57:07.88:cx3bBBlj KotlinもUIはJVM, JS, Nativeとそれぞれ開発しないといけないという方向性なんだよね。 マルチプラットフォームでUIもKoltinで1回書くだけで済む日は来ないんだろうか。 Gluonという会社がAndroidとiOS向けのJVM(JavaFX付き)を作るとか言っていたんだけどどうなったのかな。 ページを見に行くとあるにはあるっぽい。 使った人とかいます? : デフォルトの名無しさん [sage] 2018/02/03(土) 09:01:37.02:w4Z6vlfg Macだけなら余裕。 TornadoFXであっさり作れる。 : デフォルトの名無しさん [sage] 2018/02/03(土) 09:18:56.79:JaWlScCi KotlinでiPhoneアプリは作れる : デフォルトの名無しさん [sage] 2018/02/03(土) 09:33:24.43:JaWlScCi 参考 Android・iOS対応のクロスプラットフォームライブラリ、Intel Multi-OS Engine(MOE) ttps://qiita.com/yyYank/items/2d96640d713a527691be Kotlin/Nativeを使ってiOSアプリを作ってみる ttps://qiita.com/noripi/items/4ee969c48b3da5ca6fbd : デフォルトの名無しさん [sage] 2018/02/03(土) 09:37:01.92:cwvA0gbQ 面倒くさそう : デフォルトの名無しさん [sage] 2018/02/03(土) 09:45:23.72:JaWlScCi 面倒なら ・SwiftやObjective-Cで直に作る ・Cordovaなどで作る ・iPhoneアプリは諦める 詳細は該当のスレでどうぞ : デフォルトの名無しさん [sage] 2018/02/03(土) 09:50:47.55:w4Z6vlfg こんなんあるのか、知らなかった。試してみるよありがとう。 ただクロスプラットフォームのライブラリって大体最終的にうまくいかないから、つい警戒してしまうw : デフォルトの名無しさん [sage] 2018/02/03(土) 10:04:18.17:g4V8Xpml Xamarin C#が正解だよ 簡単で高品質 : デフォルトの名無しさん [sage] 2018/02/03(土) 11:58:07.39:rIodJ30B 時間掛かって低品質のアプリが出来上がるだけクロスプラットフォーム : デフォルトの名無しさん [sage] 2018/02/03(土) 12:05:11.68:Pk3rL+mD 正式セミナーで技術より人脈なんて宣伝する糞プラットフォームは使わない : デフォルトの名無しさん [sage] 2018/02/03(土) 12:51:45.20:3SRelbb9 Xamarinは簡単だけど高品質かと言われると、、 : デフォルトの名無しさん [sage] 2018/02/03(土) 12:54:52.62:3SRelbb9 実際クロスプラットフォームが最適なアプリってそんな多くないよな。 何かの画像処理をするとかそういう端末内で複雑なビジネスロジックを組まなくちゃいけないものならそこを共通化できるメリットはあるだろうけど、 サーバーサイドと通信して何かをするのがメインなクライアント系アプリなら普通にネイティブで2つ作った方が楽 : デフォルトの名無しさん [sage] 2018/02/03(土) 13:19:34.45:cwvA0gbQ Unityでええやん : デフォルトの名無しさん [sage] 2018/02/03(土) 13:29:02.91:g4V8Xpml APIクライアントやちょっとした処理も完全に共通化できるから便利だよXamarin Java,Kotlin / Swift,obj-cだと日付型と日付操作apiみたいな些細な部分でも違いがある C#にすると文法や基本ライブラリの粒度で共通化できる : デフォルトの名無しさん [sage] 2018/02/03(土) 13:58:55.43:cwvA0gbQ C++使いなら、QTとかSDLとか : デフォルトの名無しさん [sage] 2018/02/03(土) 14:47:37.76:rIodJ30B Xamarinみたいな糞はプロトタイプ開発でしか使い道ない まともなアプリはみんなネイティブ 任天堂のXamarin製アプリもカブドットコムのXamarin製アプリも星平均3.0の糞アプリ認定されてる Microsoft自身も糞認定して使わない糞開発環境がXamarin : デフォルトの名無しさん [sage] 2018/02/03(土) 15:38:21.40:I3vkx3c9 Unityは日本語入力の問題さえ解決すれば多分かなりの部分の解決になると思う。 なんせ画面を描くところから自力でやってるからな。 業務アプリでもポチポチ画面押すだけの物とか結構いけると思うし、実際あるんじゃないかな。 : デフォルトの名無しさん [sage] 2018/02/03(土) 15:57:45.75:h3rMVgMV 共通部分はともかくUiはそのプラットフォームのネイティブでやったほうが結局は簡単なんだよな : デフォルトの名無しさん [sage] 2018/02/03(土) 16:06:38.75:g4V8Xpml どのプラットフォームでもネイティヴで書いてもVとVMは普通に分離するだろ なんでマルチプラットフォーム対応で追加のコストはかからない : デフォルトの名無しさん [sage] 2018/02/03(土) 16:32:01.67:c+hycmxt おう業務アプリと入力フォーム部品の蜜月性なめんあ Unityはゲームと家庭向けアプリ特化の方向性のままでいいと思うぞ : デフォルトの名無しさん [sage] 2018/02/03(土) 18:14:08.46:05c/5eCT クロプラは凝ったことしようとすると詰むね : デフォルトの名無しさん [sage] 2018/02/03(土) 18:35:13.80:biHS6/dY Xamarin程の糞はない : デフォルトの名無しさん [sage] 2018/02/03(土) 18:46:40.72:I3vkx3c9 確かにそうか。 社内カレンダー通りの休日がマークされる日付選択とか、営業日入力とか色々あるもんな。 : デフォルトの名無しさん [sage] 2018/02/03(土) 23:11:11.34:w4Z6vlfg すまんけどそろそろXamarinスレに帰ってもらっていいかな : デフォルトの名無しさん [sage] 2018/02/03(土) 23:47:52.38:Dj9L0wRm ザマァw : デフォルトの名無しさん [sage] 2018/02/03(土) 23:53:32.22:g4V8Xpml Xamarinで全てが解決する : デフォルトの名無しさん [sage] 2018/02/04(日) 00:09:06.97:uJTrEg0Y ざまりんは座間市のマスコットキャラクターです : デフォルトの名無しさん [] 2018/02/04(日) 01:24:03.44:fXO59JwO MOE ART って、もう狙ったネーミングとしか思えない。 : デフォルトの名無しさん [sage] 2018/02/04(日) 01:28:27.34:fXO59JwO ざまりんとことりん・・・りん繋がりか : デフォルトの名無しさん [sage] 2018/02/04(日) 09:35:33.76:FBsDULoD どう考えてもことりんの方がかわいい : デフォルトの名無しさん [sage] 2018/02/04(日) 09:54:33.07:fkv+V9jD クマリンだと税金までとってくれる : デフォルトの名無しさん [sage] 2018/02/04(日) 09:57:33.79:FBsDULoD 今更だけど、ことりんとこっとりんどっちが正しいんだろ : デフォルトの名無しさん [sage] 2018/02/04(日) 10:25:02.12:djmEPYyF XamarinをやっているやつというのはC#の機能を使うことやXamarinを使うことそれ自体が目的化していて お客さんに良いものを届けたいという意思が存在していない ソフトウェアを作るということは価値のあるものを世の中に提供して世の中をもっといい場所にするために 行われることであるべきで、完全に自分本位でゴミを量産し続けるXamarinエンジニアは全員死んだ方が良い : デフォルトの名無しさん [sage] 2018/02/04(日) 11:57:10.52:nOFNDTKE ことりんの記述の簡潔さが良いと言われているスレに来てC#書けなんて言われたらそりゃ嫌がらせだよ : デフォルトの名無しさん [sage] 2018/02/04(日) 12:57:23.44:jtpbEfK1 C#の方がエレガントなコードを書けるでしょ エレガントで保守性の高いプログラムはお客にとってもありがたい お客にいいものを届けたいならXamarinだよ Kotlinの奇形じみたセンスのない文法はお客も辟易してる kotlinを使いたいというプログラマのわがままでお客に迷惑をかけちゃダメだ : デフォルトの名無しさん [sage] 2018/02/04(日) 13:02:47.05:FBsDULoD なんか変なのが居着いちゃったな。。。 : デフォルトの名無しさん [sage] 2018/02/04(日) 13:28:53.05:FSE7+++a C#は、.Net か Monoを入れないといけないのがウザいし JavaやKotlinは、JDK入れないといけないし、 やっぱそういう意味では、Swiftが最強やな : デフォルトの名無しさん [sage] 2018/02/04(日) 13:45:15.33:zMXPgQ7i ねーよ : デフォルトの名無しさん [sage] 2018/02/04(日) 13:47:54.74:th3aOzJF ことりんスレということを思い出していただきたい : デフォルトの名無しさん [] 2018/02/04(日) 14:38:34.08:iVs4GAGZ 何ここ、ザマリンスレなの? : デフォルトの名無しさん [sage] 2018/02/04(日) 14:39:13.20:zMXPgQ7i ザマリンアンチが居ついた : デフォルトの名無しさん [sage] 2018/02/04(日) 15:18:28.39:Iw8xCsU2 Xamarinスレでは相手にされないものでね ここなら最初からできる : デフォルトの名無しさん [sage] 2018/02/04(日) 17:01:56.94:fXO59JwO うーん。しかし、Xamarin って本屋行くとiOSアプリ関係の本の所にちょっとしか置いてないし、 ほとんど名前しか知らないから俺には批判することすらできないなあ。眼中にない感じ。 仕事でも必要になることは今のところ全くないし。(ま、仕事で使わないと言えば Kotlin も Java も俺は使わないんだけどね)。 : デフォルトの名無しさん [sage] 2018/02/04(日) 17:20:25.12:FSE7+++a Xamarinに興味ないのならこのスレ来んなよカス : デフォルトの名無しさん [sage] 2018/02/04(日) 17:24:52.19:zMXPgQ7i ここKotlinスレやでwww : デフォルトの名無しさん [sage] 2018/02/04(日) 17:29:38.53:fXO59JwO 全くないねえw : デフォルトの名無しさん [sage] 2018/02/04(日) 19:41:54.65:djmEPYyF Xamarin程の糞はない : デフォルトの名無しさん [sage] 2018/02/04(日) 20:04:16.29:8c6AhnDA お前らそんなに暇ならKotlinで人の役に立つブラグラムでも書いてこいよ : デフォルトの名無しさん [sage] 2018/02/04(日) 20:14:32.95:th3aOzJF やだよ 俺は俺のためにプログラムするだけだ : デフォルトの名無しさん [sage] 2018/02/04(日) 20:40:33.04:NcR26d4z ことりんはBカップ、ザマリンはHカップだそうだ。 どっちが優れているかは明らかだろう。 : デフォルトの名無しさん [sage] 2018/02/04(日) 21:04:53.75:v0/VVSUj ザマリンはケツぷりんぷりんやで : デフォルトの名無しさん [sage] 2018/02/05(月) 06:25:07.64:XnXa3nca その二択ならことりんだわ : デフォルトの名無しさん [sage] 2018/02/05(月) 07:01:14.71:PujqrgUf ことりん使いはロリコンってことなのか? : デフォルトの名無しさん [sage] 2018/02/05(月) 09:24:55.28:Bet9M/a/ まぁ、そういうことになるわな : デフォルトの名無しさん [sage] 2018/02/05(月) 11:01:26.93:U6/FYtwu 女性の敵ですよ(歌詞) : デフォルトの名無しさん [sage] 2018/02/05(月) 17:22:37.32: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(); } } : デフォルトの名無しさん [sage] 2018/02/05(月) 17:23:55.91:tfCzDdoz launch(UI)とか昔のコードみるとあるのですが、UIは廃止されたのでしょうか? : デフォルトの名無しさん [sage] 2018/02/05(月) 17:57:24.43:RkA+fItw ここXamarinスレだから、そんなこと聞かれても困る : デフォルトの名無しさん [sage] 2018/02/05(月) 18:58:41.41:wW/kiq+x 情報の出処について詳細求む : デフォルトの名無しさん [sage] 2018/02/05(月) 20:07:43.39:Gnk0ssBz なんかスレチな話題ばっかりなんだが、コトリンインアクション買う価値ある? 本家HPのリファレンスで十分? : デフォルトの名無しさん [] 2018/02/05(月) 20:54:56.13:AaZ8U1Zi わからない。それは今のお前の状態によって変わる。立ち読みして自分で決めろ。 まあしかし俺のエスパー能力を使った直観によれば、多分買った方が良い。 : デフォルトの名無しさん [] 2018/02/05(月) 21:08:10.13:tfCzDdoz launch(UI)のUIはcoroutine-androidの別モジュールだった。すみません。 : デフォルトの名無しさん [sage] 2018/02/05(月) 21:14:06.27:U6/FYtwu コルーチンは実験的らしいけど Androidなら「android kotlin 非同期」とかでググってみたらいいんじゃないかな 実験的じゃない方なら「android 非同期」でJavaのやり方をそのままKotlinに : デフォルトの名無しさん [sage] 2018/02/05(月) 23:17:35.87:nOjIwE3H Kotlinイン・アクション、2017 Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016 太郎はたぶん、イン・アクションを参考にしながら、スタートブックを書いたのかな? そういう意味では、太郎本の方が有利 : デフォルトの名無しさん [sage] 2018/02/06(火) 05:27:10.63:8sdmif4x 本家HPの英文リファレンスを読みこなせるなら、イン・アクションはいらない。 Kotlinをこれから始める人で1冊しか買えないのならの言う通り太郎本がいい。 : デフォルトの名無しさん [sage] 2018/02/06(火) 06:25:53.98:rJfYat5w コルーチンっていつまで実験的扱いなんだ 普通に十分実用に耐えるんだが : デフォルトの名無しさん [sage] 2018/02/06(火) 08:50:02.13:BCxTzJO3 サンクス じゃー、様子見するよ 立ち読みしろって言われても近くにでかい本屋ねーし、4000円越えで無駄に高いしな : デフォルトの名無しさん [sage] 2018/02/06(火) 09:12:44.31:mPJqoZjS 標準でページ翻訳を備えるブラウザが便利 stackoverflow(英語本家)のやり取りなんかは本じゃ得られないし : デフォルトの名無しさん [sage] 2018/02/06(火) 09:21:42.12:BI0U6pHR ノン・アクション : デフォルトの名無しさん [] 2018/02/06(火) 09:30:50.75:KYIMWbNh Amazonでkindle版のサンプルがただで読めるよ。サンプルだからどの程度まで読めるかはわからないが。 : デフォルトの名無しさん [sage] 2018/02/06(火) 11:58:30.44:Ql6hMbqV Stackoverflowを翻訳なしで読めないならKotlinより先に英語を勉強した方が良いと思う 煽りじゃなくてマジで : デフォルトの名無しさん [sage] 2018/02/06(火) 12:37:44.65:mPJqoZjS 全く読めないならその通りだね その場合検索もまともに出来ないだろうし でも情報を探しているときに日本語と同じ速度で流し読み出来る人以外には翻訳おすすめ : デフォルトの名無しさん [sage] 2018/02/06(火) 12:53:34.58:BI0U6pHR Google先生の翻訳精度も最近上がってる気がする : デフォルトの名無しさん [sage] 2018/02/06(火) 13:14:41.74:Cp0wU7qW たまにできる・できないとか真逆の意味で訳される : デフォルトの名無しさん [sage] 2018/02/06(火) 14:05:56.32:oL/xYjbv 読めなくても文法の基礎知識があれば翻訳を修正しながら読める : デフォルトの名無しさん [sage] 2018/02/06(火) 20:33:53.89:BCxTzJO3 最近のGoogle先生はほんと優秀で、一回全部Google翻訳にかけて、意味がわからんところだけ英文見て修正するだけでも単語調べる時間減るから、だいぶ時間の節約になる : デフォルトの名無しさん [sage] 2018/02/06(火) 21:28:26.63:HNEg71Ng 精度が良いからって頼りきりなのは問題だよ データシートも翻訳するの? : デフォルトの名無しさん [sage] 2018/02/06(火) 22:10:15.81:rTnXOt5h 時間節約や翻訳支援に有用性があるという程度の話に 突っかかって行く意味あるのか? : デフォルトの名無しさん [sage] 2018/02/06(火) 23:01:06.65:ovlDN9kS 言語オタクと初心者以外本なんて必要ないような 最低限の知識は軽く公式のドキュメント読んで後は その都度覚えれば十分だなぁ 言語オタクじゃないので言語よりアプリ作るのが目的だからな : デフォルトの名無しさん [sage] 2018/02/06(火) 23:03:49.83:BI0U6pHR Kotlin自体より、Android SDK等のクラスライブラリの方が使いこなすの大変だわ : デフォルトの名無しさん [sage] 2018/02/07(水) 16:35:52.55:c/oxW6ag 新しい言語覚える時は適当に評価高い本を一冊買う派だな俺は 全体像をつかむのに体系的ににまとまった本はやっぱり便利 : デフォルトの名無しさん [] 2018/02/09(金) 11:15:30.34:S2cW3gVf 自分の慣れた言語で当たり前だったやり方でも、他の言語ならもっとスマートに書けるとかあるからな 公式ドキュメントだとどうしても全体を俯瞰的に見るのは難しいから、自分が存在を知っている情報以外の情報に気付きにくい : デフォルトの名無しさん [] 2018/02/10(土) 18:20:28.04:ax7FG40j カンファレンス楽しみ : デフォルトの名無しさん [sage] 2018/02/11(日) 00:06:26.27: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でどう書けばいいの… : デフォルトの名無しさん [sage] 2018/02/11(日) 00:14:54.33:7rBQZAiC 宿題は自分でやろうね : デフォルトの名無しさん [sage] 2018/02/11(日) 00:37:59.12:tZ50hO/2 IntelliJかAndroidStudioで変換してエラーを手修正すればOK : デフォルトの名無しさん [] 2018/02/11(日) 05:15:17.18:B0DbdRYG それは何ていう言語で書いてあるんだ? : デフォルトの名無しさん [sage] 2018/02/11(日) 06:47:22.49:7rolFSqw 言いたいことを想像しながらの答えになるけど、ビット演算もシフト演算もKotlinにはあるよ。 ttps://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html Cのような見栄えにならないとしても、それはKotlinの目指すところではないということかと。 : デフォルトの名無しさん [sage] 2018/02/11(日) 08:33:39.91:HsBVk8FN kotlinでやるならwKeyもIntArrayとかにしたほうがよさそう : デフォルトの名無しさん [sage] 2018/02/11(日) 08:54:01.46:tZ50hO/2 普通にJavaでしょ 殆どIntelliJがやってくれる : デフォルトの名無しさん [sage] 2018/02/11(日) 10:57:18.59:7jnO/yAb IntelliJでunko.ktというファイルを作る そのコードをそのまま貼り付ける 終わり : デフォルトの名無しさん [sage] 2018/02/11(日) 11:35:59.62:hLOHWIXG もとの言語知らんけどもっとマシな書き方あるだろと思う : デフォルトの名無しさん [sage] 2018/02/11(日) 11:51:33.86:qM2RbKtk 何かの外部の処理論理をそのまま記述したって感じだな 外部の処理記述と突き合わせなければならないような場合はこんなのをよく見る 変にスマートに書き換えされてると脳内再変換コストがかかるというパターンw : デフォルトの名無しさん [sage] 2018/02/11(日) 13:44:27.62:Dss3s5Hr なんか折角いろいろ簡略化して書けて見やすくて良いねって思うけどそういうのは融通利かないな_ あとこれ 何故Byte→Short→Intを自動でやってくれないのか : デフォルトの名無しさん [sage] 2018/02/11(日) 14:07:54.93:tZ50hO/2 Javaではこれがfalseになる Integer a = 0; Long b = a + 0L; System.out.println( a.equals(b) ); コード上のプリミティブ型とクラス型の区別を排除していたり(最適化でプリミティブ型になる) 型推論を持つKotlinで数値型の暗黙の型変換は地雷になるのであえて無くしている : デフォルトの名無しさん [sage] 2018/02/11(日) 16:20:36.85:QgiY6BS8 こういうの見るとセンスねえなあって思う C#の開発者が優秀すぎた : デフォルトの名無しさん [sage] 2018/02/11(日) 18:58:12.47:JShv+xJ2 Javaの検査例外になれるとKotlin-JVMで検査例外使えないのが辛い・・ : デフォルトの名無しさん [sage] 2018/02/11(日) 20:20:29.62:Dss3s5Hr 例えば引数にByteを使う場合にJavaでは数値の明示的変換が要るのに対してKotlinでは要らないけど いざ数値と比較しようとするときには -> Java/Kotlin == -> true/error ==(cast) -> true/true equals -> false/false equals(cast) -> true/true になってKotlin側は値比較をしてくれないのはそのせいか いやでも引数に使うときや代入時には(型の範囲内なら)変換無しで通るんだから 数値比較でも比較される型の範囲内ならキャスト不要にして欲しいな : デフォルトの名無しさん [sage] 2018/02/11(日) 21:15:48.50:prqcbbby kotlin初心者の質問くんはここでいいですか…? : デフォルトの名無しさん [sage] 2018/02/11(日) 21:19:39.67:gE7bRFhE ほかあたってください : 512 [sage] 2018/02/11(日) 21:22:12.72:prqcbbby すみませんでした : デフォルトの名無しさん [] 2018/02/11(日) 21:58:08.45:B0DbdRYG いや、いいだろ。なぜ? : デフォルトの名無しさん [sage] 2018/02/11(日) 22:32:21.15:gE7bRFhE すみません、Xamarinスレと勘違いしました : デフォルトの名無しさん [sage] 2018/02/12(月) 15:11:34.54:Ut4sP9LM ワロタ : デフォルトの名無しさん [] 2018/02/12(月) 15:28:15.00:rB04jb5x kotlinの話題が許されないkotlinスレ : デフォルトの名無しさん [] 2018/02/12(月) 15:36:24.81:lpfNHnpq 何言ってんだここはザマリンスレだぞ : デフォルトの名無しさん [] 2018/02/12(月) 16:44:32.14:gfcybQxo そういや Kotlin も初心者質問スレみたいのがあった方が良いんじゃないか? 今はまだ言語そのものを知らない人が多いようなのでこのスレだけでも良いかも知れないが、何れ増えて来るだろうし。 : デフォルトの名無しさん [sage] 2018/02/12(月) 19:14:25.11:rB04jb5x そんなん増えてきたら作ればいいだろ このスレですら過疎すぎてxamarinに乗っ取られてるんだからこれ以上住人を分散させなくていい : デフォルトの名無しさん [sage] 2018/02/12(月) 19:27:31.45:gtsgi9fT Xamarin程の糞はない : デフォルトの名無しさん [sage] 2018/02/12(月) 20:00:50.98:waI/80wR ある : デフォルトの名無しさん [sage] 2018/02/12(月) 20:06:04.05:gfcybQxo ま、そうだな。 : デフォルトの名無しさん [sage] 2018/02/12(月) 21:59:41.62:TVd19ADi XamarinってKotlinより流行ってるん? : デフォルトの名無しさん [] 2018/02/12(月) 22:20:35.54:Af1G2ZWC 結局Xamarinの話題でまわるスレ : デフォルトの名無しさん [sage] 2018/02/12(月) 22:23:41.28:rB04jb5x Kotlinはようやく存在が知られ始めたところだし、これからよ : デフォルトの名無しさん [sage] 2018/02/12(月) 22:26:32.35:NpQ9GJ9J ざまりんとかことりんとか何か気安いな : デフォルトの名無しさん [sage] 2018/02/12(月) 22:35:59.46:Bk9VmC4X XamarinというかC#が強すぎるんだよね : デフォルトの名無しさん [sage] 2018/02/12(月) 22:46:21.77:gfcybQxo いやしかし特定の分野でだけではないかな。Web関係とか。 少なくとも俺の日頃の仕事では全く絡まないのでどこでよく使われているのかよくわからない。 : デフォルトの名無しさん [sage] 2018/02/13(火) 06:41:15.56:+5F8N/ik C++でAndroid書くみたいなのは完全にオワコン? : デフォルトの名無しさん [sage] 2018/02/13(火) 09:16:08.55:WXuIo0Zq ニッチコン : デフォルトの名無しさん [] 2018/02/13(火) 09:22:14.51:Hjhq84aM ネイティブってこと?それだと当然CPUが違うと動かないよね。 : デフォルトの名無しさん [sage] 2018/02/13(火) 09:28:15.91:WXuIo0Zq え? : デフォルトの名無しさん [sage] 2018/02/13(火) 10:09:44.20:ek2wpFVO Xamarinって確かライセンス買わないと使える機能に制限あるんじゃなかったっけ : デフォルトの名無しさん [] 2018/02/13(火) 11:48:52.36:i1aJT757 使った事がないのでわかりません : デフォルトの名無しさん [sage] 2018/02/13(火) 12:50:25.21:d0Q2J5B+ そうか Java VMで動くC#があれば全て解決するのか : デフォルトの名無しさん [sage] 2018/02/13(火) 14:45:21.02:flHxC5Ds なんでわざわざJVMで? : デフォルトの名無しさん [sage] 2018/02/13(火) 16:28:11.56:JFn7hM60 C#自体あんまり好きじゃないから勘弁してくれ : デフォルトの名無しさん [sage] 2018/02/13(火) 19:15:59.91:KJxSXl65 XamarinのライセンスはVisual Studioライセンスに統合されてる Communityライセンスの条件内なら無料 そうでなければ年間サブスクリプションが必要(約6万円 / 年・開発者) : デフォルトの名無しさん [sage] 2018/02/13(火) 20:59:24.53:YVR14H+q 安いなぁ : デフォルトの名無しさん [] 2018/02/13(火) 21:10:26.79:RM6vxbUw 安いと感じるか高いと感じるかはあなたしだいです。 : デフォルトの名無しさん [] 2018/02/13(火) 23:22:43.96:7sc/QqUb でここはKotlinスレでいいんだよな? : デフォルトの名無しさん [] 2018/02/14(水) 00:51:14.52:71Om1Biy Kotlin だって いいじゃないか JavaVM だもの : デフォルトの名無しさん [sage] 2018/02/14(水) 07:14:41.99:3FUTBO2y .NET上で動くJVMならあるけど(実用に耐えるとは言っていない)。 ttp://www.ikvm.net/index.html : デフォルトの名無しさん [sage] 2018/02/14(水) 12:55:24.11:EGLxgTrP kotlinは好きだけどJVMがなぁ・・・ て思ってる人はかなり多いと思うよ kotlin nativeに頑張ってもらって さっさとJVMから足洗ってほしい : デフォルトの名無しさん [sage] 2018/02/14(水) 13:07:48.38:d5//Tphf 同意 : デフォルトの名無しさん [sage] 2018/02/14(水) 13:19:15.79:WIinEwd5 ぼきはJavaのライブラリ使うのでJVMでもいいれす(^p^) : デフォルトの名無しさん [] 2018/02/14(水) 13:35:25.05:QwasDp2D 俺もとりあえずはJVMで良い。 気になるのはJavaScriptの方かな。 : デフォルトの名無しさん [sage] 2018/02/14(水) 17:38:51.85:D3O9gfhg Kotlinに移行しようかとしばらく触ってみたけど、C#の方が痒いところに手が届くいい言語だな、、、 : デフォルトの名無しさん [sage] 2018/02/14(水) 18:38:51.02:8PtXrtN7 なんだかんだで膨大のJavaのライブラリとそれらのノウハウを使えるってのが大きいわな : デフォルトの名無しさん [sage] 2018/02/14(水) 19:57:38.83:oF080CGK Javaの腐ったライブラリよりC#の洗練されたライブラリの方が有り難いんだけど : デフォルトの名無しさん [sage] 2018/02/14(水) 20:14:34.75:viC2s+IO >なんだかんだで膨大のJavaのライブラリとそのノウハウ それを負の遺産という : デフォルトの名無しさん [sage] 2018/02/14(水) 20:56:03.30:UlcWCziO バッドノウハウは要らないのと神託社に抑えられいるのがイヤン : デフォルトの名無しさん [sage] 2018/02/14(水) 21:35:40.97:mO/mX4fn ほとんど借金なんだよなぁ COBOLと同じ道辿ってる : デフォルトの名無しさん [] 2018/02/15(木) 12:27:28.16:GqN6d9KA イミフ : デフォルトの名無しさん [sage] 2018/02/15(木) 13:04:38.64:n8vclWLi JAVAの肩持つわけじゃないがCOBOLと同じ道は流石にないわ : デフォルトの名無しさん [sage] 2018/02/15(木) 18:18:01.31:CMBfD/sb COBOLとは全然状況違うよな 分散処理のフレームワークとかミドルとか活発に開発されてるし 言語としては最先端ではないかもしれないけど、逆に最先端の言語でも優れたプロダクトを生み出してないなら大して存在価値ないし : デフォルトの名無しさん [sage] 2018/02/15(木) 18:44:01.31:krlBMZHL これから終わるんだよ kotlinとc#に駆逐される : デフォルトの名無しさん [] 2018/02/15(木) 18:54:22.05:skblyvdp JavaVMの上でCOBOLが動くようになったりして・・・ : デフォルトの名無しさん [sage] 2018/02/15(木) 19:02:58.45:SuVvVuMr 一定の奴隷需要は残るだろうね : デフォルトの名無しさん [sage] 2018/02/15(木) 19:36:21.03:1CgTZOOO これから終わると言われ続けて10年 : デフォルトの名無しさん [sage] 2018/02/15(木) 21:54:13.46:qz0oQ/wP write once run anywhereとか言われてた頃が懐かしいな : デフォルトの名無しさん [sage] 2018/02/15(木) 22:34:41.26:2kJoQloU いつだか覚えていないくらい昔にマジメにそれを開発しようとしてた会社があったような COBOLしか書けないおじさんを救済するためだけの代物ですぐ頓挫したけど : デフォルトの名無しさん [sage] 2018/02/15(木) 22:40:34.93:2kJoQloU まあでも確かにJava言語は使われなくなっていくだろうね。 うちもJavaで作ってるシステムの機能追加なんかはkotlinでやってるし、JVMで動かすのが要件な新規のプログラムももうほぼkotlinに移行してる。 スマホは知らんけどandroid開発はもうkotlinが多いのかな? : デフォルトの名無しさん [sage] 2018/02/15(木) 23:12:11.62:/UvppoEW ドロイド会議のアンケートでもkotlin使ってるひと多かったし : デフォルトの名無しさん [sage] 2018/02/15(木) 23:59:58.64:9umHg1OB Kotlinを推しつつもJavaはまだ現役だと考えている しかしJava8でラムダが入ったときと AndroidがJava8に対応したときは正直「余計なことしおって」と思ったな Java6のままだったら今以上にKotlinが推されてただろうからw : デフォルトの名無しさん [] 2018/02/16(金) 03:16:32.96:RsIE9z2G しかしJavaのラムダはやりすぎだろって感じがした。 : デフォルトの名無しさん [sage] 2018/02/16(金) 05:43:13.28:shLmPi2M 確かに レガシーJavaおじさんと現代人Kotlin使いで棲みわけた方が平和だったかもしれないね : デフォルトの名無しさん [sage] 2018/02/16(金) 06:37:35.95:br7rfOfj kotlinでandroidの説明してるところなんか全然ない 先進的な一部が勝手に使い始めてるだけで普及の段階ではない、いつもながら日本は遅れてる : デフォルトの名無しさん [sage] 2018/02/16(金) 06:49:21.30:UxRi07OK 全然ないことはないだろ : デフォルトの名無しさん [sage] 2018/02/16(金) 07:11:23.90:shLmPi2M (僕の周りでは)全然ない (国内では)全然ない : デフォルトの名無しさん [sage] 2018/02/16(金) 07:17:40.02:W9Ay2BhF 最近ネットに出て来るandroid周りのサンプルはほぼkotlinじゃない? : デフォルトの名無しさん [sage] 2018/02/16(金) 09:05:39.78:3Bntq5A/ kotlinの実務経験ないやつは失業ざまあwww : デフォルトの名無しさん [] 2018/02/16(金) 09:19:32.40:OW1usLwi 実務経験って、そもそも実務で使われてる所がまだ少なかろう。 : デフォルトの名無しさん [sage] 2018/02/16(金) 10:41:09.40:FgGKrURU 実際DroidKaigiのセッションスライドのコードはほぼKotlinだったし、実務もKotilnである割合はかなり増えてるでしょ。 自分も実務ではもう1年くらい使ってるし。 : デフォルトの名無しさん [] 2018/02/16(金) 10:58:35.59:OW1usLwi そりゃAndroidだから増えてて当然な感じするが、世の中にはAndroidしかないわけではないからなあ。 : デフォルトの名無しさん [sage] 2018/02/16(金) 11:06:50.68:e2WRvV7P 俺は逆にandroidまったくやらんけどkotlinめっちゃ使ってるよ ローカルのプログラムでもサーバーサイドでも まだこういうのは少数派だろうけど : デフォルトの名無しさん [] 2018/02/16(金) 12:46:25.84:6HTN9r9U ああ。俺は趣味では使うよ。というか学習中なので敢えて使う感じ。Kotlinだとどう書けるかを調べながら書いてる感じ。 : デフォルトの名無しさん [sage] 2018/02/16(金) 12:47:35.63:ime2ev9d ながら勉強? : デフォルトの名無しさん [] 2018/02/16(金) 12:58:29.56:6HTN9r9U ながらというか、CやPerlなら仕事で何十年も使ってて間が働くからどう書くかはすぐ想像できる(Javaも趣味で20年ぐらいやってるのでなんとなくわかる)んだが、 Kotlinはそれと似たようにも書けるしKotlinならではの書き方もできるわけで、その辺のKpylin的な書き方を学習してる感じ。 : デフォルトの名無しさん [] 2018/02/16(金) 12:59:00.48:6HTN9r9U 間がじゃない、勘がだ。 : デフォルトの名無しさん [] 2018/02/16(金) 13:01:00.94:6HTN9r9U うう。やはりスマホだと変なタイプミス増えるな。orz : デフォルトの名無しさん [sage] 2018/02/16(金) 13:02:16.20:6wcMGkCt くぴりんw : デフォルトの名無しさん [sage] 2018/02/16(金) 13:05:28.66:3Bntq5A/ どうせお前らrxもMVVMもfluxも分からないんだろ 失業ざまああwwwwwww : デフォルトの名無しさん [] 2018/02/16(金) 15:00:09.56:WR2/4984 どこかで聞いたことがあるようなないような・・・ : デフォルトの名無しさん [sage] 2018/02/16(金) 18:08:43.61:LeDNkgwE タイプミスじゃなくて誤変換 フリックは関係ない、注意力が欠けてるだけ : デフォルトの名無しさん [sage] 2018/02/16(金) 19:12:39.30:pw8u3FlN rxとmvvmはわかる fluxがわからないから3行で説明して : デフォルトの名無しさん [sage] 2018/02/16(金) 19:50:26.64:uCgPr+rC 片 方 向 : デフォルトの名無しさん [] 2018/02/16(金) 20:40:30.87:YSXjevvC 俺 も 知らない : デフォルトの名無しさん [sage] 2018/02/16(金) 21:50:37.65:A7OU5IQx 車輪の 再発明に 名前を付けた : デフォルトの名無しさん [sage] 2018/02/16(金) 22:05:45.45:JKZCusui モルゲッソヨ : デフォルトの名無しさん [sage] 2018/02/16(金) 22:11:32.26:kk8fZRd1 今分かったんですけど、プライマリコンストラクタ宣言せずに セカンダリコンストラクタって宣言できるんですね。 プライマリコンストラクタの主な用途ってコンストラクタのパラメータの宣言とプロパティの宣言を 一緒にできるぐらいですか??用途は。 class Test(val p1: String)とか : デフォルトの名無しさん [sage] 2018/02/16(金) 23:21:19.28:JKZCusui 中身が空っぽなだけで、プライマリコンストラクタは常にあるよ ttps://ideone.com/tSGMPY : デフォルトの名無しさん [sage] 2018/02/16(金) 23:59:52.15:JKZCusui 基本は省略表記なだけ ttps://ideone.com/3Uc2dJ : デフォルトの名無しさん [sage] 2018/02/17(土) 00:19:37.32:1ji1uAN3 でも、空のプライマリコンストラクタを明示的に宣言するのと省略するのでは厳密には同一ではないですよね?? だから、言葉の定義の問題にもなっちゃうけど、initブロックはinitブロックであってプライマリコンストラクタと同一視 しない方がいいとか。プライマリコンストラクタはあくまでclass Test(val p1: String)のval p1: String部分だけで、 プライマリコンストラクタはボディは持てない。 初期化はinitブロックで行うとか? : デフォルトの名無しさん [sage] 2018/02/17(土) 00:24:21.47:1ji1uAN3 ttps://kotlinlang.org/docs/reference/classes.html 正式な言語仕様書とかないんでしったけ?? JavaとかC#はしっかりした言語仕様書みたいのあって言葉もしっかり定義されてると 思いますが、kotlinはそういうのないとか・・ : デフォルトの名無しさん [sage] 2018/02/17(土) 00:37:46.91: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 まぁ、ここにはプライマリコンストラクタの一部になるって書いてあるね。 : デフォルトの名無しさん [sage] 2018/02/17(土) 00:43:30.54:vJDAw5Ja そうね暗黙の場合と違いあるから省略という表現は不正確だったごめん セカンダリコンストラクタが無い場合、暗黙のプライマリコンストラクタはpublicになる セカンダリコンストラクタが有る場合、暗黙のプライマリコンストラクタは未初期化メンバを残せる : デフォルトの名無しさん [sage] 2018/02/17(土) 01:07:01.46:vJDAw5Ja 明らかにまだ未完成だけどこれだと思う ttp://jetbrains.github.io/kotlin-spec/ : デフォルトの名無しさん [sage] 2018/02/17(土) 09:11:07.08:cSouIKOJ Kotlin使いがJava使いにマウント取ってる様を見てまたこの繰り返しかと思いそっ閉じ : デフォルトの名無しさん [] 2018/02/17(土) 11:37:12.55:EWYfJ6l0 マウント取ってるように見える?そりゃなんていうか、劣等感強すぎでは? てか一々そんなこと考えてないで自分でも使えばいいじゃん。禁止されているわけでもなし。 Java が使える状態になったことのある人が Kotlin 使えるようになれないわけがないと思うが。 : デフォルトの名無しさん [sage] 2018/02/17(土) 19:20:37.06:MOg6+5DY ていうかkotlin使いって99%Java使いも兼ねてるだろうからマウントとるも何もないのでは : デフォルトの名無しさん [sage] 2018/02/17(土) 22:06:51.34:QsKtGr9g 今使ってる人はそもそもJavaできるからな より使いやすくても、対立構造にはならないよな : デフォルトの名無しさん [] 2018/02/18(日) 01:22:27.54:5P/pcqvC モバイル開発は違うかもだが、業務系は極端に言っちまうとjava要員集めるっつたら使い捨て兵隊集めだよ。 : デフォルトの名無しさん [sage] 2018/02/18(日) 11:33:46.48:LPhOEvze そんな自分の知ってる世界だけの狭い話をされても : デフォルトの名無しさん [sage] 2018/02/18(日) 13:07:28.97:hkjnjusX Kotlin, RxJava, MVVMは基本的な必須スキルだからな 未だに実務経験ないやつは失業確定ざまああwwwwwww : デフォルトの名無しさん [sage] 2018/02/18(日) 13:07:47.53:1pIRFdOf 兵隊だなんてでたらめ書くなよ 兵隊じゃなくて奴隷だぞ : デフォルトの名無しさん [sage] 2018/02/18(日) 13:24:23.64:R7wrwf8X Android系の技術スレは失業だの兵隊だの低いところでマウント争ってるんだな。稼いでるやついなそう。 : デフォルトの名無しさん [sage] 2018/02/18(日) 13:56:19.84:D295fkqM そういやKotlinはまだ求人数は少ないけど給与は良いって調査結果があったな 中途半端だと仕事にありつけないかもしれないな : デフォルトの名無しさん [] 2018/02/18(日) 14:56:03.30:oDDrqbus しかしKotlinってKotlinらしくない従来のJavaっぽい書き方をしても動いてしまうからな。金を多く払う意味があまりないかも知れないぞ。 : デフォルトの名無しさん [sage] 2018/02/18(日) 16:12:24.98:nyTLTr1m Kotlinで単価が高いのは、チームが今後Kotlinでやってけるように導入の面倒見れる人だよ が言ってるレベルの奴なんてそもそも高い単価で雇われないから : デフォルトの名無しさん [sage] 2018/02/18(日) 16:20:57.25:JlUJeRgg 面倒みなきゃならんほどのものじゃないでしょ プログラム初心者じゃあるまいし : デフォルトの名無しさん [sage] 2018/02/18(日) 16:37:41.33:nyTLTr1m お前の周辺状況について述べてるわけじゃないことぐらい理解して : デフォルトの名無しさん [sage] 2018/02/18(日) 16:51:37.36:oDDrqbus 雇う側がそれを見抜ければ良いんだろうけどね。 : デフォルトの名無しさん [sage] 2018/02/18(日) 17:24:17.84:JlUJeRgg 確認だけど職業としてプログラマやってる人たちの話って前提だよね? 小学校のプログラムの授業とかじゃなくて : デフォルトの名無しさん [sage] 2018/02/18(日) 19:36:30.68:nyTLTr1m もういいよめんどくさい じゃあKotlinできればそのレベルに関わらず誰でも単価高いってことでええわ : デフォルトの名無しさん [sage] 2018/02/18(日) 22:46:31.63:mRumiIcD ラムダ式から式の外側のthisを参照するにはどうすればいいでしょうか?現状、 val this_ = this async { this_ } とかしてますけど、これ以外方法ない? : デフォルトの名無しさん [sage] 2018/02/19(月) 00:54:19.29:bFR3uyhH 無いことはないけど俺もそうしてるよ class A { fun f(){ async { this@A } } } ttps://kotlinlang.org/docs/reference/this-expressions.html : デフォルトの名無しさん [sage] 2018/02/19(月) 07:19:51.84:YvDQTksi 結局それが1番手っ取り早いと思うけど、this_っていう変数名は気持ち悪いから嫌 : デフォルトの名無しさん [sage] 2018/02/19(月) 11:29:23.81:IoDkpp2Z 言っとくけどselfもダサいよ : デフォルトの名無しさん [sage] 2018/02/19(月) 11:44:10.96:yCg2MRRi そうじゃねえだろ それを言うなら、self_ もダサい : デフォルトの名無しさん [sage] 2018/02/19(月) 12:18:18.12:uDWMisC4 やっぱ thiz だよね : デフォルトの名無しさん [] 2018/02/19(月) 12:46:45.80:8HhXX1j3 どう書いても最適化されて同じコードになったりして・・・ : デフォルトの名無しさん [sage] 2018/02/19(月) 16:13:32.25:qb2IEpmC 俺なら一目で何だか分かる名前にする : デフォルトの名無しさん [sage] 2018/02/19(月) 17:29:10.39:yTArt2lJ 例えば? : デフォルトの名無しさん [sage] 2018/02/19(月) 17:33:59.71:tDxwJ5H8 ありがとうござます。this@hogeを使う事にしました : デフォルトの名無しさん [sage] 2018/02/19(月) 17:36:07.64:UjHZ69on val unko = this : デフォルトの名無しさん [sage] 2018/02/19(月) 17:37:58.45:jylwc8fn ore,kore,sore : デフォルトの名無しさん [sage] 2018/02/19(月) 17:39:35.65:UjHZ69on val 式の外側のthis = this async { 式の外側のthis.method() } これが1番わかりやすいな : デフォルトの名無しさん [sage] 2018/02/19(月) 18:45:31.43:J+iGZU0/ class名.instanceはコトリンではつかえないのん? : デフォルトの名無しさん [sage] 2018/02/19(月) 22:24:58.24:9U/kf45x objectで宣言したクラス(シングルトン)のclass名.INSTANCEのことでしょうか? : デフォルトの名無しさん [sage] 2018/02/19(月) 23:31:48.80:4xWfaW8A エンクロージングインスタンスの話。 クラス名.thisの間違いだった。 : デフォルトの名無しさん [sage] 2018/02/19(月) 23:50:04.20:bFR3uyhH ラムダに束縛したいのはthisだけとは限らないしネストも有り得るので クラス外の関数として分離した場合の引数名のイメージで変数名付けてる val view = this val cal = activeCalculator async { cal.recalc() transaction { val tran = this check(cal, tran) } view.notifyUpdate() } : デフォルトの名無しさん [sage] 2018/02/20(火) 06:41:06.84:qL04aTa6 真面目にいえば俺もこれ。 this_とかは仮に何かしらでもう一段ネストした時に詰む。 : デフォルトの名無しさん [sage] 2018/02/20(火) 09:07:54.40:qXeXVbGF ネストする時は、 this__ this___ this____ this_____ と、_を増やしてけば : デフォルトの名無しさん [sage] 2018/02/20(火) 10:02:20.87:I+nWo9FQ よみづらい : デフォルトの名無しさん [] 2018/02/20(火) 10:02:36.87:pltRTpB+ フォントが違うと見え方が変わりそう : デフォルトの名無しさん [sage] 2018/02/20(火) 12:03:00.62:5NVGlXhy 天才かよ : デフォルトの名無しさん [] 2018/02/20(火) 12:57:02.91:DWBDu+Jk ま、しかし、あまりにもネストが深くなるようならロジック考え直した方が良いかも : デフォルトの名無しさん [] 2018/02/20(火) 20:10:18.67:xSX01qXm メソッド参照とか別クラスとか。 : デフォルトの名無しさん [] 2018/02/20(火) 20:29:10.81:qXSQ9QV9 ネストは三段ぐらいまでにしといた方がいいだろうな。 その辺が迷宮の入り口だ。 Cのポインタとかも同じ。3段以上先には魔物が住んでいる。 : デフォルトの名無しさん [sage] 2018/02/20(火) 20:35:32.22:qL04aTa6 せめて他のメソッドに切り出すくらいは最低でもやるべきだわな : デフォルトの名無しさん [sage] 2018/02/20(火) 22:17:03.69:/iBGk+pN androidでデータバインディングしようとして class Foo { @Bindable val bar get() = hoge.bar } とかできないの??・・・ : デフォルトの名無しさん [sage] 2018/02/20(火) 22:18:25.44:/iBGk+pN エラー内容はThis annotation is not applicable to target 'member property without backingField or delegate'です。 どうしたらいいでしょかね : デフォルトの名無しさん [sage] 2018/02/20(火) 22:30:04.18:/iBGk+pN Javaでは class Foo { @Bindable String getBar() { hoge.getBar() } } で、hogeはFooのフィールド変数です。 : デフォルトの名無しさん [sage] 2018/02/20(火) 23:05:50.58:/iBGk+pN ごめんさい。解決しました。@get:Bindable : デフォルトの名無しさん [sage] 2018/02/21(水) 00:01:54.65:CION/kfn また、アノテーションだけど。遅延初期化ではアノテーションつけれんの?しょぼーん。 @field:Transient val lazyVal by lazy {} だめか・・ : デフォルトの名無しさん [] 2018/02/21(水) 14:48:51.57:aopUu534 いま触れてないけどkotlin-Nativeってどんな感じ? ほとんどなんでもコンパイルかけれる? 見たところLLVM通すから行けそうだけど : デフォルトの名無しさん [sage] 2018/02/21(水) 15:35:13.89:HWbyxxJS 実用で使うのはまだ怖いけど、遊びで触る分にはちゃんと動くよ。 javaの標準パッケージが全く使えないから、jvmで動かす前提で作ってあるクラスだのライブラリだのが動かないという辛さはある。 : デフォルトの名無しさん [sage] 2018/02/21(水) 16:03:44.92:wwQ+gY6z javaのパッケージ使えないんならわざわざJVM言語使う価値なんかないわwさよなら〜 : デフォルトの名無しさん [sage] 2018/02/21(水) 16:13:56.98:4d1xezjM うん。はっきり言って現状ではこれを使うメリットが何一つ思い浮かばないよ俺も。 : デフォルトの名無しさん [sage] 2018/02/21(水) 17:59:59.69:ftdNQJg9 地味にアップデートされてるからJBが飽きなければそのうち実用レベルになるかもねえ : デフォルトの名無しさん [] 2018/02/21(水) 18:05:11.04:2C7myRiq それなりの標準ライブラリはあるんでしょ?まだないの?(ないわけないか。なければ Hello world も出せないもんな) : デフォルトの名無しさん [] 2018/02/21(水) 18:28:14.61:aopUu534 ありがとう。 なるほどまだ様子見しとくわ Javaの標準パッケージ動かないの辛いね : デフォルトの名無しさん [sage] 2018/02/21(水) 18:37:05.98:KLOfXDKN はいキチガイ : デフォルトの名無しさん [sage] 2018/02/21(水) 18:56:30.68:sG9Uh+s7 がメリットを説明してくれる模様w : デフォルトの名無しさん [sage] 2018/02/21(水) 19:15:48.38:CION/kfn この言語意味不明になってきた。 class Test { var str: String get() = field set(value) { } constructor() { str = "あいう" } } val t = Test() 普通にstrがnullになる : デフォルトの名無しさん [sage] 2018/02/21(水) 19:17:58.58:CION/kfn セカンダリコンストラクタでstrのbakcingFieldにアクセスできないの?? constructor() { str = "あいう" // これはsetter経由のプロパティアクセス } : デフォルトの名無しさん [sage] 2018/02/21(水) 19:21:36.71:ftdNQJg9 現状でこれ使ってハッピーなことがあるなら教えてくれw : デフォルトの名無しさん [sage] 2018/02/21(水) 19:23:37.72:ftdNQJg9 そのコードの意図がよく分からないんだけど、何がしたいの?ゆ : デフォルトの名無しさん [sage] 2018/02/21(水) 19:30:46.29:CION/kfn 意図はないけど、null安全とかいっておきながらkotlin側だけでnull入るコード書けるのまずいような気がする。 いや、プロパティの初期化方法がうざくて色々調べてたら気づいただけ。 : デフォルトの名無しさん [sage] 2018/02/21(水) 19:35:19.91:CION/kfn プロパティ宣言すると初期値与えろってうるさいんだけど、うるさいのはいいんだけど初期値の与え方が val str: String = プロパティイニシャライザ プロパティイニシャライザ以外、bakcingFieldに直接与える方法ないの?? だって、初期値与えろってコンパイルエラーでるから、セカンダリコンストラクタに str = "あいう" // これはsetter経由のプロパティアクセス 書いたんだけど、setter経由のプロパティアクセスだとsetterがのようになってるって初期値実際与えられてないし・・ : デフォルトの名無しさん [sage] 2018/02/21(水) 19:38:04.92:CION/kfn >書いたんだけど、setter経由のプロパティアクセスだとsetterがのようになってるって初期値実際与えられてないし・・ は >書いたんだけど、setter経由のプロパティアクセスだとsetterがのようになってるいじわるコードだと初期値実際与えられてないし・・ に修正 : デフォルトの名無しさん [sage] 2018/02/21(水) 19:44:04.71:ftdNQJg9 そういうことね 確かにこれならsetterの部分でコンパイルエラー出て欲しい気がするな 帰ったらドキュメント舐め回してみるか : デフォルトの名無しさん [sage] 2018/02/21(水) 22:17:43.95:mU+xwBkv lateinintつけないでコンパイル通ってしまうなら、Kotlinコンパイラのバグの可能性も... : デフォルトの名無しさん [sage] 2018/02/21(水) 22:24:25.01:mU+xwBkv は勘違いでした。申し訳ない。 多分あまりにも悪意に満ちた常人なら間違え内容のない契約プログラミング違反だから、 そこまでは面倒を見られないということかも。 : デフォルトの名無しさん [sage] 2018/02/21(水) 22:33:20.79:A2iqRMA5 悪意の無い初心者がめちゃくちゃ書いてもちゃんと面倒見てくれるべきだと思う : デフォルトの名無しさん [sage] 2018/02/21(水) 23:05:16.86:CION/kfn null安全の導入とともに変数は宣言時に初期値を与えなきゃいけなくなって、 ローカル変数は宣言時に与えなきゃいけないけど、インスタンス変数は宣言時または コンストラクタ内で与えればOKなんだけど、 backingFieldを持つプロパティと相性悪かった?ってことかな。 backingFieldを持つプロパティはプロパティイニシャライザを与えるか、 コンストラクタ内でbackingFieldに直接初期化するという条件を付けくわえないとだめ? field:str = "あいう" // コンストラクタ内でのみ使えるbakckingFieldにアクセスする専用構文の導入が必要 か str = "あいう” // コンストラクタ内でのプロパティへの代入はsetterは経由しないとかの条件が必要 : デフォルトの名無しさん [sage] 2018/02/22(木) 00:40:47.03:P3OwyHQx バグ相当だと思う 初期化(setter呼び出し)の有無は判定出来ているのだから コンパイルエラーにするのが難しいなら その直後にそのプロパティのBacking Fieldがnullだったら KotlinNullPointerExceptionを投げる処理を暗黙的に追加すべき : デフォルトの名無しさん [sage] 2018/02/22(木) 00:42:25.58:P3OwyHQx コンパイラor言語仕様のバグって意味ね : デフォルトの名無しさん [sage] 2018/02/22(木) 01:34:10.26:2g+h2XZc null安全の導入->非nullableのクラス型のデフォルト値なんてないから、変数は必ず初期化する 必要がある->(この再、nullable、非nullable関係なく全変数初期化するように) 未初期化の変数がコンパイラエラーにならないんて、これが言語仕様なら 仕様がクソだったってことだな(さすが、適当に作った言語ってことに)。 コンパイラのバグであることを祈ろう。 : 666 [sage] 2018/02/22(木) 06:49:37.65:W5l1Fr+S は、Test()でconstructor()が呼ばれないことについて エラーも警告も出ないことも問題かもしれない。 他 Javaで1回しか代入できないフィールドを作るのにsetterに渡された値を捨ててしまうことは 手法としては考えれられなくはないから、バグではなく仕様かも。 逆にチェックを厳しくし過ぎると出来そうなことができなくなる罠も出てくるから 完璧は無理かと。 Kotlin自体「実用的な」範囲でバランスをとったというコンセプトだし。 : 666 [sage] 2018/02/22(木) 06:57:22.88:W5l1Fr+S の一つ目は勘違いでした。 Kotlinは便利だけど、いくつかの規則は言語仕様でなく契約に基づいていて 契約違反のコードは勘違いを起こさざるを得ないと言い訳する...orz : デフォルトの名無しさん [sage] 2018/02/22(木) 07:31:42.26:tIZ7FSiP C#でいいじゃん : デフォルトの名無しさん [sage] 2018/02/22(木) 07:39:36.87:HpXxCMc4 いや、この件は普通にコンパイラの仕様バグだと思うからissue上げて来なよ : デフォルトの名無しさん [sage] 2018/02/22(木) 07:44:53.50:HpXxCMc4 一回しか代入したくないならセッターの中にそういう処理を書けばいいだけだし、 非NullableなのにNullが入る状態でコンパイルできるのはどう考えてもバグでしょ : デフォルトの名無しさん [sage] 2018/02/22(木) 07:45:17.47:P3OwyHQx そういう手法のときは内部フィールド側はNullableになっているべきじゃないかな 通常ケースの一つとしてnullがあるパターンなわけだから private var strF: String? = null var str: String get(){return strF ?: ""} set(value) { } : デフォルトの名無しさん [sage] 2018/02/22(木) 09:29:54.25:tZO46ghF setterを空にしたらバッキングフィールドへの代入は永遠にされないのでは? 外部からバッキングフィールドへの代入ってできないよね? (getterで値を変更するカウンターみたいなやつは別として)。 : デフォルトの名無しさん [sage] 2018/02/22(木) 21:30:53.59:MQzOZIuj Nullableでないプロパティのsetterがnullの状態で呼ばれることがあるって考えるとなんか気持ち悪いな 俺の感覚だとsetterが呼ばれた時点でフィールドは初期化されていて欲しいしフィールドの初期化にsetterは使って欲しくない : デフォルトの名無しさん [sage] 2018/02/22(木) 22:55:00.07:4ek3nBtk JRubyよりはええんか? : デフォルトの名無しさん [sage] 2018/02/23(金) 00:50:16.39:U4AoY/IO の var str : String の部分を var str = "aaa" みたいに書くと var なのに str に何を代入しても 中身が"abc"のまま変化しないプロパティが完成w : デフォルトの名無しさん [sage] 2018/02/23(金) 00:50:44.77:U4AoY/IO 間違えた。"abc"じゃない"aaa"な。 : デフォルトの名無しさん [sage] 2018/02/23(金) 07:49:04.02:bsuGQjVb ワロタ 嫌な会社を辞めるときにテロとしてそういうコード残しておくイタズラとかできそう それはそうとnullableじゃないのにnullになりうるセッターがコンパイル通るのはやっぱおかしいよな そんなんする奴がいるのかって話ではあるが : デフォルトの名無しさん [sage] 2018/02/23(金) 08:31:33.24:nqFe2RWJ githubにあるkotlinのプロジェクトはissuesのリンクがないや どこに報告すればいいんだ : デフォルトの名無しさん [sage] 2018/02/23(金) 08:54:38.23:MOvRrowf なぜREADMEを読まない… : デフォルトの名無しさん [] 2018/02/23(金) 14:54:59.97:0k9d4/AB まとめ ttps://paiza.io/projects/E8Wb5DZH7qOC-b5hcPSk3Q : デフォルトの名無しさん [sage] 2018/02/23(金) 18:54:32.34:fUBBLv0N こりゃダメだ C#使おっと : デフォルトの名無しさん [sage] 2018/02/23(金) 19:22:20.80:tkkK8G2q えぇ…これ仕様通りなん?だとしたら糞じゃね? : デフォルトの名無しさん [] 2018/02/23(金) 20:44:31.66:Py5a3myD C#はこういうこと起きないの? てか、そもそも同じような形式のプログラム作れるの? : デフォルトの名無しさん [sage] 2018/02/23(金) 21:13:42.52:8lqriKW0 C#はそもそもnull安全じゃないから出てくること自体おかしい : デフォルトの名無しさん [sage] 2018/02/23(金) 21:26:34.63:i7MOfoRF 8.0ではoptinでnull安全にできるようになるんじゃなかったけ。まあ、でもmicrosoftはこんなポカしないと思うけど。 : デフォルトの名無しさん [sage] 2018/02/23(金) 22:05:57.26:R3lraTlN オプティン… : デフォルトの名無しさん [sage] 2018/02/23(金) 22:13:05.72:YiHajEe6 ・セカンダリコンストラクタが存在する ・代入して初期化してる(ように見える)プライマリコンストラクタかセカンダリコンストラクタがある この2つを満たすとコンパイル通っちゃうのかな ttps://paiza.io/projects/78ZAW5fM_jNEyfhRPD5VbA : デフォルトの名無しさん [sage] 2018/02/23(金) 22:28:48.21:8lqriKW0 こりゃコンパイラのバグ説が濃厚だな : デフォルトの名無しさん [sage] 2018/02/23(金) 22:46:50.15:ZKkKvK7/ 完全に趣味でSwift触り始めたんだけど、ことりんと似すぎてて脳の切り替えが大変 : デフォルトの名無しさん [sage] 2018/02/23(金) 23:32:19.57:gu5jD4u6 setterがNOPだからでしょ 何もおかしくないと思うんだが : デフォルトの名無しさん [sage] 2018/02/23(金) 23:51:24.69:pZoCSvCU Javaなら何もおかしくないけど、これはkotlinなんですよ : デフォルトの名無しさん [sage] 2018/02/24(土) 00:23:17.37:KMKYwria あー、ごめんごめん、nullableじゃないのにってことね : デフォルトの名無しさん [sage] 2018/02/24(土) 06:43:01.61:geSYf0sR SwiftではOptionalよん : デフォルトの名無しさん [sage] 2018/02/24(土) 06:47:11.68:H2lSL8Bq そこら辺の名称も統一してくれたらよかったのに : デフォルトの名無しさん [sage] 2018/02/24(土) 08:17:33.01:vmshfWHt 引数や戻り値の属性(アノテーション)としての出自でNullable (@Nullable) 型引数を持つデータ構造として出自でOptional (Optional<T>) : デフォルトの名無しさん [sage] 2018/02/24(土) 08:21:38.91:gsJVlH30 だから何? : デフォルトの名無しさん [sage] 2018/02/24(土) 08:32:56.79:vmshfWHt 単なる経緯にだからも何も無いんだけど : デフォルトの名無しさん [sage] 2018/02/24(土) 09:18:53.65:b9ViFkCo Optionalではアンラップが必要で、Nullableでは不要 : デフォルトの名無しさん [sage] 2018/02/24(土) 15:32:03.48:QRpOEI48 つまりOptionalは神Nullableは糞 : デフォルトの名無しさん [sage] 2018/02/24(土) 15:33:06.32:QRpOEI48 間違えた逆だNullableは神Optionalは糞 : デフォルトの名無しさん [sage] 2018/02/24(土) 16:29:10.25:XDApard5 神と糞は種類が違うだろ : デフォルトの名無しさん [sage] 2018/02/24(土) 16:55:50.73:La3HIAz8 Xamarin程の糞はない : デフォルトの名無しさん [sage] 2018/02/24(土) 20:13:00.64:geSYf0sR Kotlinではnullにならない型など存在しないのだ、がっはっは : デフォルトの名無しさん [] 2018/02/24(土) 23:25:19.26:QE7g/pJn 神は糞である。 : デフォルトの名無しさん [sage] 2018/02/25(日) 06:02:39.69:z/Jlakx1 糞は紙で拭け : デフォルトの名無しさん [sage] 2018/02/25(日) 10:33:42.84:4s22ePtw Kotlinインアクションの尼評価低いなと思ったら理由が「難しい」ってw : デフォルトの名無しさん [sage] 2018/02/25(日) 10:54:15.05:skC5U3zO やっぱGroovy in Actionだろ、GradleはGrooovyなんだぜぇ : デフォルトの名無しさん [] 2018/02/25(日) 11:44:58.69:XjF3qDop こんな本が出てたんだな。 Androidアプリ開発の教科書 ttp://amzn.asia/59lxVwl : デフォルトの名無しさん [sage] 2018/02/25(日) 11:46:33.02:XjF3qDop あ、Kotlin で検索したら出てきた本だけど Kotlin とは限らないみたいだな。すまん。 : デフォルトの名無しさん [sage] 2018/02/25(日) 11:50:17.94:XjF3qDop すまん。Kotlin の K の字も出てこないな。忘れてくれ。 : デフォルトの名無しさん [sage] 2018/02/25(日) 12:40:42.33:pcyqC+jB Kotlinイン・アクション、2017 Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016 せっかく太郎が、イン・アクションを参考にして、わかりやすく書いたのだから、 日本人は、太郎本を読んだ方がよい : デフォルトの名無しさん [sage] 2018/02/25(日) 13:02:41.55:OHKw3fir 情報量はインアクションの方が多いから、わざわざ薄めた本を買う必要なんてないよ : デフォルトの名無しさん [sage] 2018/02/25(日) 13:29:07.46:V/Ygd9gi お前はスッキリをすすめてろよ : デフォルトの名無しさん [sage] 2018/02/25(日) 14:16:36.00:4s22ePtw Kotlin本といえば今のところインアクションとスタートブックの2択だと思うけど、 「難しい」って理由でレビュー評価下げるのはどうよ?と思ったんで、難しい以外に インアクションで問題点ある? バージョンが古いとか? : デフォルトの名無しさん [sage] 2018/02/25(日) 14:31:03.18:VQCl2C19 ※716 Androidの入門本なんてAndroid搭載機種の種類と同じくらい大量に出てるのになぜわざわざそれを貼ろうと思ったのか : デフォルトの名無しさん [sage] 2018/02/25(日) 14:41:45.45:XjF3qDop 先に書いた通り、AmazonでKotlinで検索して出てきたため。 : デフォルトの名無しさん [sage] 2018/02/25(日) 15:09:27.72:Ydc/tL+D 電子書籍でレイアウト固定だと買う気しない : デフォルトの名無しさん [sage] 2018/02/26(月) 08:03:23.98:RZjRtr5i 知らんけどkotlinのandroid入門書なんてもう山ほど出てるんちゃうの?まだjavaばっかなの? : デフォルトの名無しさん [] 2018/02/26(月) 08:23:30.09:t40oU2wX まだ一冊しかないのでは? : デフォルトの名無しさん [sage] 2018/02/26(月) 08:27:44.65:RZjRtr5i そうなのか、意外と動き遅いんだな : デフォルトの名無しさん [sage] 2018/02/26(月) 08:56:28.62:qQ1Da7Hp 本で勉強する時代じゃないからね : デフォルトの名無しさん [sage] 2018/02/26(月) 09:20:17.57:G+urRbGd 細切れ情報を探すのはやだな。レベルも方針もバラバラだし。 良書があるなら本がいい。 : デフォルトの名無しさん [sage] 2018/02/26(月) 09:34:26.29:/jWICelY まあ、AndroidでKotlin使うのは増え続けるだろうから何れ本も増えるだろう。 : デフォルトの名無しさん [sage] 2018/02/26(月) 09:43:22.22:CZmy/XEe 本は中古やで何冊かあったよ、まだ高かったけど 正直Pythonは失敗だったと思う : デフォルトの名無しさん [sage] 2018/02/26(月) 10:09:15.19:G+urRbGd pythonは糞本で良書が埋もれちゃってる : デフォルトの名無しさん [sage] 2018/02/26(月) 10:47:30.45:/j3wCSg3 Null Objectパターン流行るといいなあ。 : デフォルトの名無しさん [] 2018/02/26(月) 13:51:07.53:Mu1MCm3E 流行った言語は自動的にそうなる。 : デフォルトの名無しさん [sage] 2018/02/26(月) 17:53:54.70:i6+hAPO4 流行るも何もgof23パターンのうちの一つだぞ : デフォルトの名無しさん [sage] 2018/02/26(月) 18:03:06.16:3e/qclCH Null Objectはgof外でしょ : デフォルトの名無しさん [sage] 2018/02/26(月) 18:15:26.27:i6+hAPO4 すまぬ。 どうやらボケが始まったようだ… : デフォルトの名無しさん [sage] 2018/02/26(月) 18:44:34.21:3e/qclCH 気にするな、禊としてXamarinのライセンス買ってこい : デフォルトの名無しさん [] 2018/02/26(月) 18:51:59.91:3Mt4XsWV 買わない買わない : デフォルトの名無しさん [sage] 2018/02/26(月) 19:46:08.16:FSYyOpBd 本を読んだけどどっちもよかったよ。 ただ読み手のスキルで理解力に差があるからそこで評価が分かれてるのかも。 : デフォルトの名無しさん [sage] 2018/02/27(火) 10:02:27.46:GEmGj4yT IntelliJの変換機能使ってシコシコKotlinに変換してるけどstatic無いのがウザくなって来た Swiftにはあるのにー : デフォルトの名無しさん [sage] 2018/02/27(火) 12:16:20.20:pU97M93t コンパニオンは? : デフォルトの名無しさん [sage] 2018/02/27(火) 18:56:17.20:9XUAnYvD 自動変換使ったら普通にcompanion objectにならなかったっけ : デフォルトの名無しさん [sage] 2018/02/27(火) 20:07:07.98:VEiALCIH スーパーコンパニオンがいいです : デフォルトの名無しさん [sage] 2018/02/27(火) 23:14:15.97:m5Iw3K9X 自動変換してもコンパニオンにならなかったから、シコシコ変えてる : デフォルトの名無しさん [sage] 2018/02/27(火) 23:34:21.25:l+pACPTY Android stuiosって糞重いのな Xcodeの比じゃなかったわ : デフォルトの名無しさん [sage] 2018/02/27(火) 23:39:03.53:oVWfwCMw Core i7、メモリ32GBだけど、コーディングに支障があるほど重いとは感じないかな : デフォルトの名無しさん [sage] 2018/02/28(水) 00:05:50.05:KPu2dHe+ ノート用のi5、8Gでもサクサク動くぞ : デフォルトの名無しさん [sage] 2018/02/28(水) 01:54:55.83:SwOhtkGH 基本xcodeの方が重くない? : デフォルトの名無しさん [] 2018/02/28(水) 04:32:16.89:ifAjmiIg Android stuios... : デフォルトの名無しさん [sage] 2018/02/28(水) 06:49:11.80:qqsPLA0F 明らかにxcodeの方が重い : デフォルトの名無しさん [sage] 2018/02/28(水) 06:51:00.64:qqsPLA0F あ、Android StudioじゃなくてAndroid stuiosの話なのか それなら知らんわ : デフォルトの名無しさん [sage] 2018/02/28(水) 07:13:17.29:hln4Ed73 VisualStudioはサクサク動くね : デフォルトの名無しさん [sage] 2018/02/28(水) 08:34:11.55:pTBSmEfK Android Studioはエミュレータの起動が激重 : デフォルトの名無しさん [sage] 2018/02/28(水) 08:51:39.92:CR0DdEON お前のPCが糞なんだろ : デフォルトの名無しさん [] 2018/02/28(水) 09:34:38.82:3IEGD0z0 そういやエミュレータは遅いな。あれ速くならんもんかね?実機に繋いじゃうしかないか? : デフォルトの名無しさん [sage] 2018/02/28(水) 11:19:49.30:fhD/c/L7 そんなにおもいか? : デフォルトの名無しさん [sage] 2018/02/28(水) 12:23:44.87:pWBZNbli その部分はXcodeも糞重いからまあしゃあない : デフォルトの名無しさん [sage] 2018/02/28(水) 13:05:00.32:/o1cB3Jz お前の収入がまともなPCも買えないほど低いだけ : デフォルトの名無しさん [sage] 2018/02/28(水) 15:32:06.67:nKEiX8dA Flutterが話題になってるけど、Dartなんだよなあ、、 : デフォルトの名無しさん [sage] 2018/02/28(水) 15:32:21.47:nKEiX8dA Kotlinならよかったのに : デフォルトの名無しさん [] 2018/02/28(水) 15:59:23.70:/fCVXMT7 やっぱ金掛けてゲーミングPCにしないといかんかね : デフォルトの名無しさん [sage] 2018/02/28(水) 17:02:46.79:Dh2+122Q 何の話ししてるんだ : デフォルトの名無しさん [sage] 2018/02/28(水) 17:05:13.06:Dh2+122Q IntelliJファミリーのIDEが不自然に重い時はプラグインを疑った方が良い もしくは単純にindexingか何かをしてるだけか とりあえず2013年モデルでメモリ8GBのMBPでもサクサク動く : デフォルトの名無しさん [sage] 2018/02/28(水) 21:48:31.62:CR0DdEON さっさとまともな収入得られる会社に転職しろ : デフォルトの名無しさん [sage] 2018/03/01(木) 05:22:15.58:cE1p2NGM googleさんの本命はkotlinじゃなくてflutterのDartだったってこと? : デフォルトの名無しさん [sage] 2018/03/01(木) 06:15:15.24:uqwlFRYM いや、あの会社がプログラミング言語を開発するのは趣味みたいなもんだから。 : デフォルトの名無しさん [sage] 2018/03/01(木) 11:37:02.64:tn3lzpGs 飽きたら捨てるでしょ : デフォルトの名無しさん [sage] 2018/03/01(木) 13:21:29.38:a0FtR1fD 女ったらし : デフォルトの名無しさん [sage] 2018/03/01(木) 13:52:18.31:rGfsNRkK Goってどこ行ったんだよ : デフォルトの名無しさん [sage] 2018/03/01(木) 14:25:40.30:a0FtR1fD トイレ : デフォルトの名無しさん [sage] 2018/03/01(木) 16:56:43.31:/5bgAPbJ 有名どころだけでもGASとgoとDartとあるからな 統一しろや : デフォルトの名無しさん [sage] 2018/03/01(木) 17:02:42.69:SIvaL2Ua なんかgoogleって統一感無いよなー。 dart捨てたと思ってたのに、このタイミングで復活させるとかさ。ならchromeに予定通りvm載せろや : デフォルトの名無しさん [sage] 2018/03/01(木) 17:40:32.49:JNnNxKxo もうどれにも移行せずJavaに留まるのが一番 : デフォルトの名無しさん [sage] 2018/03/01(木) 18:09:19.76:cE1p2NGM それが望ましいな。まぁ、Flutter+Dartが成功したらchromeにもDartVM搭載復活とかあるかもね。 それで、JavaScript絶滅に追いやってほしいわ。 今どきの言語ならなんえり好みしないからフロントエンドからJavaScriptを絶滅に追いやってほしい。 : デフォルトの名無しさん [sage] 2018/03/01(木) 18:12:11.07:uQkXDe7H 未だにKotlinの実務経験のないやつは完全失業ざまあwww : デフォルトの名無しさん [sage] 2018/03/01(木) 18:13:28.77:tn3lzpGs それはない : デフォルトの名無しさん [sage] 2018/03/01(木) 18:26:37.33:ABErgR5Z COBOLだってまだ生きてるしね : デフォルトの名無しさん [sage] 2018/03/01(木) 18:48:56.63:cE1p2NGM つか、あれ、ラムダ式の中で値返すときretrunとかキーワードつけないのかー ふーんって思ったけど、制御までreturnするんじゃないのか・・ { if (条件式) 値1 その他の文 値2 } で、if文の条件式が真の時、値1が返ってreturnするのかと思ったらその後も実行されるのか・・ : デフォルトの名無しさん [sage] 2018/03/01(木) 18:56:24.56:cE1p2NGM あれ、どうやって値返すんだよん。if else使いたくないんだけど。 : デフォルトの名無しさん [sage] 2018/03/01(木) 19:05:41.78:uqwlFRYM 太郎本でも読むことをお勧めする : デフォルトの名無しさん [sage] 2018/03/01(木) 19:22:21.90:SIvaL2Ua jsを、撲滅ってESの最新仕様追いかけなよ。 悪くないから : デフォルトの名無しさん [sage] 2018/03/01(木) 19:23:41.14:cE1p2NGM コンパイルエラーがでるからそこらへん適当にやっててもなんとかなったけどww。 真面目に考えるとどうなってんだこれww 今までコンパイルエラーが消えるように適当に例えば、 fun testAsync(): Deffered<String> { return async { lock.withLock { "ABC" } } } むしろ、retrunを付けると怒られたからこのままにしたけど。return@asyncってラベルつけるればいいのか。 ラベルつけない場合はどうなってんだこれ。 : デフォルトの名無しさん [sage] 2018/03/01(木) 21:08:11.92:lRGki80K inline の場合は return の意味がちょっと変わっちゃうんじゃない? : デフォルトの名無しさん [sage] 2018/03/02(金) 09:57:27.48:cO6anSKk : デフォルトの名無しさん [sage] 2018/03/02(金) 19:55:39.45:UK6+GFm3 ありがとう。ちょっと前に話題になってたのね。 つか、前に教えてもらった ttp://jetbrains.github.io/kotlin-spec/ にそれに関する事のってねぇな? DartだってECMAでしっかりした仕様書になってるのに、 仕様書がいまだにこんなレベルなのにAndroidのFirst Class Languageにするなんて Google何考えてんだか・・ : デフォルトの名無しさん [sage] 2018/03/02(金) 20:38:44.95:UK6+GFm3 後、 ttps://ideone.com/RIMEHi で、 val t = Test() t.update() にすると、propertyが変更されないっぽいんですけど、なんででしょうか?? Android環境でコルーチンを使ってます よろしくお願いします。 : デフォルトの名無しさん [sage] 2018/03/02(金) 20:49:08.27:UK6+GFm3 あれ、そういや、でfieldってラムダ式の中から変更できるの?? : デフォルトの名無しさん [sage] 2018/03/02(金) 21:31:57.84:ypGJ9h8+ ダメだこの言語…はやく何とかしないと… : デフォルトの名無しさん [sage] 2018/03/02(金) 21:56:02.44:Cxn2x5kD え、Androidやろうと思って今ならKotlinかなって思って調べてたのに。 : デフォルトの名無しさん [sage] 2018/03/03(土) 00:14:44.42:xuTznB0o Androidやコルーチンであることは直接の関係が無く インラインでないラムダとprivate setの組み合わせが影響しているようだ ttps://ideone.com/aLit2X ↑これの「4」が出力されるケースと同じでsetの処理を通らずに バッキングフィールドに直に代入されてると思う バグか仕様か断言はしないけど、多分コンパイラのバグじゃないかな : デフォルトの名無しさん [sage] 2018/03/03(土) 00:41:15.44:AQTy3jz6 うぉぉ。ありがとう。コルーチン関係なかったのか。 まだ、インラインとか勉強してなくてさっぱりだけどw この前のも俺だし、 真面目にkotlinで開発しようと思って2週間ぐらいでこのザマとか なんなのkotlinの品質。笑えないな。 : デフォルトの名無しさん [sage] 2018/03/03(土) 00:53:35.09:X3kFcdUX この前のもだけど誰かバグとして報告してあげて… : デフォルトの名無しさん [sage] 2018/03/03(土) 01:02:48.20:AQTy3jz6 そうだよね。俺もちょっと前というか昨日もそうだけど、のまた変な動きに出くわして さすがにうんざりしてIssue Trackerのぞいたけど、前のも報告されてないっぽいよねww つか、前のやつは単なるコンパイラのバグですまされない仕様修正とか入りそうな予感してるんだけど。 まぁ、現状の仕様ってのがなんだかよくわからんけど。 : デフォルトの名無しさん [sage] 2018/03/03(土) 07:18:41.68:LSyqUS+v じゃあiOS開発に引きこもってろ : デフォルトの名無しさん [sage] 2018/03/03(土) 09:31:08.45:xuTznB0o コンパイラのバグはバグとして直すのが当然だけど この前のバッキングフィールドの初期化回避や setter内のインラインでないラムダからバッキングフィールドにアクセスするのを 普通のアプリ開発として書いているのなら止めた方が良いと思う 個人的な感覚では動作以前に「コンパイルが通るべきでは無いコード」だと思うので : デフォルトの名無しさん [sage] 2018/03/03(土) 11:42:59.48:GRjh9/QH 仕様がないとバグかそうでないか判断できないが仕様はどこにあるんだ? : デフォルトの名無しさん [sage] 2018/03/03(土) 20:31:37.81:AQTy3jz6 kotlinで3000行くらいすでに書いちゃったけど、とりあえず、private setをpublic setに直して回避・・ しばらくflutterで遊んでくるか : デフォルトの名無しさん [] 2018/03/03(土) 20:32:59.01:usZqppoC しようがないなあ : デフォルトの名無しさん [sage] 2018/03/03(土) 22:17:04.30:veVqPwjm 醤油が無いなぁ : デフォルトの名無しさん [sage] 2018/03/03(土) 23:44:09.37:AQTy3jz6 死なないかなぁ : デフォルトの名無しさん [sage] 2018/03/04(日) 14:00:55.46:6Lia9zzl のコードなんかは誰も書かないから発見さえされないし報告されてないんだろうね : デフォルトの名無しさん [sage] 2018/03/04(日) 14:48:36.99:D9lK5f2H これからプログラミング初心者がkotlinを触るようになったらそこらへんも色々見つかるだろうね 今はまだほぼ他の言語で経験のある人しか触ってないでしょ : デフォルトの名無しさん [sage] 2018/03/04(日) 17:28:56.35:PgKwjWml こんな事いうと荒れるけど、逆だと思う : デフォルトの名無しさん [sage] 2018/03/04(日) 18:11:45.65:KRR85xAP 変更されてるんだけど・・・ : デフォルトの名無しさん [sage] 2018/03/05(月) 12:20:24.87:qx4LEZCO 他の言語っていうか、java本業の人しか触ってないでしょ Androidの入門書もまだほぼjavaばっかだし : デフォルトの名無しさん [] 2018/03/06(火) 10:59:36.24:do1rqvuo コマンドラインから何も引数付けずに kotlinc 実行するとRPELで動くけどこの時に :help で出てくる :dump bytecode ってなんなの? 名前からしてバイトコードをダンプするであろうことはわかるけど、いつやっても何も出ないんだよね。 : デフォルトの名無しさん [] 2018/03/06(火) 11:00:47.10:do1rqvuo タイプミスった。rpelじゃねえ。replだ。 : デフォルトの名無しさん [sage] 2018/03/07(水) 22:44:21.36:hoG4dIXg C#のnameof演算子だと、コンパイル時に評価されますけど。 kotlinのプロパテイ参照は結構オーバーヘッド高いですかね?? when (propertyName) { ::property1.name -> ::property2.name -> } 結構頻繁に評価されるコードなんですよね : デフォルトの名無しさん [sage] 2018/03/07(水) 22:49:50.60:hoG4dIXg 今は定数でやってんですけど、まだ書き換えるべきが保留してるんです。 when (propertyName) { "property1" -> "property2" -> } リフレクション絡みのオブジェクトも普通にGC対象?で、その都度生成されたり破棄されたりすると予想しますが。 もちろんアプリ全体のボトルネックになるぐらい影響はないですけど、うーん。踏ん切りがつかん。 : デフォルトの名無しさん [sage] 2018/03/07(水) 23:45:15.29:PbzxZDny Enumじゃだめ? : デフォルトの名無しさん [sage] 2018/03/08(木) 00:35:53.57:c/6ZktFW ありがとうございます。そうですね。プロパティ増やすたびにEnumの定数も定義する必要がありますが、 パフォーマンス的にはいいですよね。 で、今ちょっと見たことなかったんですけど、Javaのバイトコード見てみたんですけど最適化されてるのか?? メソッド呼び出しされてるのかと思ったら、定数値に置き換えられてました。 最適化のせいなら将来のコンパイラでどうなるかわかりませんけど、とりあえず、普通にプロパティ参照使って 置き換えてます。 ありがとうございました。 : デフォルトの名無しさん [sage] 2018/03/08(木) 00:36:28.98:c/6ZktFW アンカじゃなくてでした。すみません。 : デフォルトの名無しさん [sage] 2018/03/10(土) 08:59:29.43:sfqxq7fN でもそれ結局今日も同じメニューになるよな たまにはやよい軒行きたいわ、遠いけど : デフォルトの名無しさん [sage] 2018/03/10(土) 09:00:01.91:sfqxq7fN すまん誤爆した Xamarinのライセンス買ってくるわ : デフォルトの名無しさん [sage] 2018/03/10(土) 10:27:08.72:lbutdI68 俺は大戸屋が多いかな : デフォルトの名無しさん [sage] 2018/03/10(土) 10:30:40.87:QX6Zsi+5 俺はとんでんかな : デフォルトの名無しさん [sage] 2018/03/10(土) 11:04:56.69:R1lisrFC やよい軒の鳥カツ定食なくなったらしいな あれしか食わなかったのに : デフォルトの名無しさん [] 2018/03/10(土) 11:07:21.06:TTti/WSS それは残念 : デフォルトの名無しさん [sage] 2018/03/10(土) 11:15:49.69:McxjgaUo waitとかマルチスレッド機能ぐらい用意しとけよー 結局java.lang.Objectから離れれられんじゃないか : デフォルトの名無しさん [] 2018/03/10(土) 18:14:12.56:a2p+alti こういうやつ? ttp://taro.hatenablog.jp/entry/2013/08/01/223323 : デフォルトの名無しさん [sage] 2018/03/10(土) 19:55:04.16:Uyf8EqGw 逆に言えばJavaの機能で出来ることをわざわざKotlinで独自に作り直す必要ってあるかね : デフォルトの名無しさん [sage] 2018/03/10(土) 20:16:52.67:MudN2Ixk クロスプラットフォーム押していくなら、Javaからある程度離れて開発できないとな。 Kotlin=JVMなら別にいいけど。 : デフォルトの名無しさん [sage] 2018/03/10(土) 20:22:51.72:SpAeFxwP flutterがKotlinでできるようになったら流行りそうなのになー : デフォルトの名無しさん [sage] 2018/03/10(土) 20:34:05.66:MudN2Ixk それが一番だけど、そうなるにはそうなるにはJetBrainsの対応待ってると時間かかりそうだから、 Google買収しないと。IDE全体抱えてもあれだからkotlin部門だけでも : デフォルトの名無しさん [] 2018/03/10(土) 23:43:23.18:MSLQ1fUp 機能的に同じでも、より簡潔に書けるなら価値ある : デフォルトの名無しさん [sage] 2018/03/11(日) 16:57:48.79:WkTMJw5e ゆくゆくはそうなっていくかもしれないけど、まずはJava完全互換を徹底して開発者を集めないとKotlin自体終わっちゃうし : デフォルトの名無しさん [sage] 2018/03/11(日) 18:30:40.29:kscc7mIG JVMがLLVM上で開発されるようになれば... : デフォルトの名無しさん [sage] 2018/03/12(月) 10:57:45.81:b79+6Z0V 日本のことりん本の電書、固定レイアウトなのか・・・ : デフォルトの名無しさん [sage] 2018/03/12(月) 17:04:59.84:nBdxFZ73 ことりん本に限らず図表の多い専門書は基本固定レイアウトが多い : デフォルトの名無しさん [] 2018/03/13(火) 17:21:36.75:UOahYQi3 超初心者で申し訳ありません。 Kotlinスタートブックを購入しました。 REPLを多用してるのでAndroid Studio3.01のREPLで進めたいのですが、 単純に、Kotlin REPLパネル内に、書籍のコード〜 じゃ無いようで、今一つ、Android StudioのREPLの使い方が分かりません。 Android Studio3.01のREPLで、「Kotlinスタートブック」をスターと部分だけでも紹介してる情報なありますでしょうか? : デフォルトの名無しさん [sage] 2018/03/13(火) 18:59:50.25:UOahYQi3 あれこれして 書籍 P28の最初の一発目 class Rational(val numerator: Int, val denominator: Int) val half = Rational(1,2) half.denominator と、打ち込んで 実行させたら、2って出来ました〜 Android Studio3.01のREPLを使って、読みすすめそうです。 : デフォルトの名無しさん [sage] 2018/03/14(水) 10:24:21.09:lhJp7l4Q 解決したみたいだからいいけど、 技術書を写経するときはREPLよりもコードをファイルとして残しておいた方がいいと思うよ 読み進めた後にちょっと前に見たところを戻って書き換えたりとかしたくなることが多いと思う : デフォルトの名無しさん [sage] 2018/03/14(水) 11:03:31.74:fxigNd06 んなこと言うならテストとして書いたほうがいい。 テストの書き方も覚えるし : デフォルトの名無しさん [sage] 2018/03/14(水) 12:56:22.69:ccacMMCY フィードバックが早い方がいいからREPLでいい : デフォルトの名無しさん [sage] 2018/03/14(水) 12:57:38.85:GCqcIqER 肴は炙った烏賊でいい : デフォルトの名無しさん [sage] 2018/03/14(水) 13:03:02.13:h74A18Hb 女は無口な人がいい : デフォルトの名無しさん [sage] 2018/03/14(水) 13:03:14.15:BC3u9Cri ちょこちょこバージョンアップしてるみたいだけど、リリースノートってあるのかな? : デフォルトの名無しさん [sage] 2018/03/14(水) 13:30:40.55:+tq877Bs Swiftのバージョンアップは破壊的変更が多くてダルいらしいけどKotlinはどうなの? : デフォルトの名無しさん [sage] 2018/03/14(水) 14:23:01.55:Qa1wTICM いい感じ : デフォルトの名無しさん [sage] 2018/03/14(水) 14:24:35.40:qG6o0CFM まあそれが理想だね なんにせよ書いたものはちゃんと残しておいた方が良いわ : デフォルトの名無しさん [sage] 2018/03/14(水) 14:27:37.09:qG6o0CFM Android studio使ってるならファイルをデバッグ実行してEvaluate Expressionするのが1番フィードバックが早くて使い勝手も良い : デフォルトの名無しさん [sage] 2018/03/14(水) 16:55:28.17:+tq877Bs そっか。じゃあ使ってみるかなー。 : デフォルトの名無しさん [sage] 2018/03/14(水) 16:57:41.33:OPcLX1QE ごくごく初期はなんか色々あったらしいけど、最近は既存のコードが動かなくなるような変更は記憶にないな。 そこらへんはJavaのカルチャーかも : デフォルトの名無しさん [sage] 2018/03/16(金) 11:31:44.04:vJGNF0d1 ttps://insights.stackoverflow.com/survey/2018#technology-most-loved-dreaded-and-wanted-languages : デフォルトの名無しさん [sage] 2018/03/16(金) 22:10:31.22:67qLUtaY WantedのPython需要はやっぱAI関連なのかな : デフォルトの名無しさん [sage] 2018/03/16(金) 22:32:20.81:KxYkqF9B ライブラリが充実してて扱いが楽だからな : デフォルトの名無しさん [sage] 2018/03/16(金) 22:38:51.57:KIAzdbMU 少数でも信者が多ければ上位に食い込みやすいランキングに見える : デフォルトの名無しさん [sage] 2018/03/17(土) 14:34:51.60:WLSgA37U そういうことじゃないだろアホ : デフォルトの名無しさん [sage] 2018/03/17(土) 14:41:12.30:Ak7laUjo じゃあなんだよボケェ : デフォルトの名無しさん [sage] 2018/03/17(土) 15:03:30.33:fRkZs0aE Androidアプリを完全にkotlinで実装するのはまだ苦労する : デフォルトの名無しさん [sage] 2018/03/17(土) 23:24:04.39:tM7ojUn9 何で苦労する? いま、フルKotlinで問題がないから聞いておきたい : デフォルトの名無しさん [sage] 2018/03/17(土) 23:25:40.94:vXQXG/x7 あ、すまん。ちゃんと読んでなかった。 入門の文脈か : デフォルトの名無しさん [sage] 2018/03/18(日) 00:15:28.10:JCaBc1o3 ぶっちゃけ、PythonとKotlin覚えときゃ十分だよな ソース見られてもいいようなちょっとした内部処理はPythonでやって、それ以外はKotlinでやればいいし : デフォルトの名無しさん [sage] 2018/03/18(日) 08:08:21.52:ewv3muP4 REPLの使い方の説明ないんだよねあの本 ぶっちゃけ最初からいきなりファイル書いたほうがいいと思うわ : デフォルトの名無しさん [] 2018/03/18(日) 17:30:16.63:lc8puhwP REPL の :dump bytecode が未だにわからん。 分かるやつは居ないのか? : デフォルトの名無しさん [sage] 2018/03/18(日) 19:44:41.94:9zPyp0Eq githubで検索してmasterブランチのソース見たけど :dump bytecodeの対象は ReplFromTerminal 経由で ReplInterpreterが直に持ってるReplClassLoaderで ReplClassLoaderはaddClassされたものをdumpするみたい それで addClass探したら HistoryActionsForNoRepeat で ReplClassLoaderを新たに生成してaddClassしてるのしか見当たらなかった 読み間違いでなければ、addと列挙を異なるReplClassLoaderインスタンスでやってるので dump bytecodeは常に何も出ないのでは : デフォルトの名無しさん [sage] 2018/03/18(日) 19:58:20.59:9zPyp0Eq HistoryActionsForNoRepeatで作られるReplClassLoaderは topClassLoaderと合わせて3重にネストしてるように見える ReplClassLoader (HistoryActionsForNoRepeatのメソッド内のclassLoader) →親 URLClassLoader →親 ReplClassLoader (状態によってはGenericReplEvaluatorStateのtopClassLoader) →親 URLClassLoader →親 ReplClassLoader (ReplInterpreterのclassLoader) →親 URLClassLoader makeReplClassLoaderは引数のbaseClassloaderがReplInterpreterだったら newせず引数をキャストして返した方がいいような気が : デフォルトの名無しさん [sage] 2018/03/18(日) 19:59:58.88:9zPyp0Eq × ReplInterpreterだったら ○ ReplClassLoaderだったら : デフォルトの名無しさん [sage] 2018/03/18(日) 22:52:30.43:R4d/cKLT わからないことがあったらコードを読む習慣がある奴と乞食するだけのお前 どんどん差は開いていくんだろうなぁ : デフォルトの名無しさん [] 2018/03/18(日) 23:20:50.45:z+wS9hu5 ちょっと意地悪だなあ : デフォルトの名無しさん [sage] 2018/03/19(月) 04:29:32.92:XZfuRe7p ん? : デフォルトの名無しさん [sage] 2018/03/19(月) 09:41:29.40:BSZ+YwbD お! : デフォルトの名無しさん [sage] 2018/03/19(月) 09:59:38.75:fKuRgkEG まー、わからないことがあればコード読むのが一番だけど、読まなくても質問の仕方ってもんがあるよな : デフォルトの名無しさん [sage] 2018/03/19(月) 10:04:43.65:tGex/oOn どなたかお分かりになる方はいらっしゃいませんか? だよな、普通は : デフォルトの名無しさん [sage] 2018/03/19(月) 10:06:41.70:I7PCjnkp お客様の中にお医者様はいらっしゃいませんか? : デフォルトの名無しさん [sage] 2018/03/19(月) 12:12:03.45:vFKsd4qZ 医者ではなくて石屋ですが、お役に立てますか? : デフォルトの名無しさん [sage] 2018/03/19(月) 12:27:52.49:vZ8Ujcaa おう、帰っていいぞ : デフォルトの名無しさん [sage] 2018/03/19(月) 12:35:26.57:BSZ+YwbD 寒いな 春なのに : デフォルトの名無しさん [] 2018/03/19(月) 12:44:20.63:/OLYcrDu この一言を添えるべきだったな。 「わからない人は書かないでください。」 : デフォルトの名無しさん [sage] 2018/03/19(月) 13:13:36.50:5154S4rE 16進コードで会話してろ : デフォルトの名無しさん [] 2018/03/19(月) 14:44:57.52:/OLYcrDu 3E 00 : デフォルトの名無しさん [] 2018/03/19(月) 14:51:05.74:G/+G0Iaz 18 FC : デフォルトの名無しさん [sage] 2018/03/19(月) 15:13:34.00:I7PCjnkp GOTO CA FE : デフォルトの名無しさん [sage] 2018/03/19(月) 15:21:12.76:vUEuVEml 55 4E 4B 4F : デフォルトの名無しさん [sage] 2018/03/19(月) 18:52:34.43:blJe5AIS 前々から思ってたけどkotlinスレって加齢臭すごいよな : デフォルトの名無しさん [] 2018/03/19(月) 19:46:11.90:ahbMAcYG 機械語にハンドアセンブルしなきゃ… : デフォルトの名無しさん [sage] 2018/03/19(月) 21:18:34.15:C8WhjMTe あいむふぉーてぃーふぁいぶにやーずおーるど : デフォルトの名無しさん [] 2018/03/19(月) 21:42:58.40:t8aO/EAD にやーず : デフォルトの名無しさん [sage] 2018/03/19(月) 22:15:22.73:C8WhjMTe マグナムドライをマグマグドライと呼ぶほど落ちぶれてはいない : デフォルトの名無しさん [] 2018/03/20(火) 00:35:07.47:J0Id73NT まぐまぐドライだろ普通。 : デフォルトの名無しさん [] 2018/03/21(水) 09:14:27.60:hFmBEg63 Graalって今年のJava11に間に合うのか? Kotlin/Native(LLVM)なんかよりずっと期待できそうだが。 : デフォルトの名無しさん [sage] 2018/03/21(水) 10:59:02.18:X+3O/rSH GraalとKotlin/Nativeって用途もコンセプトも被ってないと思うんだけど LLVMの使い方も逆方向だし : デフォルトの名無しさん [sage] 2018/03/21(水) 11:48:06.15:mE2iQj+B Graalがどうとかいう以前に、JVMがないプラットフォームがあるのを何とかして欲しい。 ライブラリも含めてコードをそのまま持ち込んでも動くならともかく、Graalで多言語をサポートしても、 各言語の基本仕様だけでは大したことは出来ない。 : デフォルトの名無しさん [sage] 2018/03/21(水) 11:52:50.41:R6+TRObd run sometime somewhereだから仕方ない : デフォルトの名無しさん [sage] 2018/03/21(水) 12:51:58.11:lHxXP1st Graal 世界大百科事典内のGraalの言及 【聖杯伝説】より …12世紀末ヨーロッパで顕在化したキリスト教の色濃い伝説だが,起源には諸説あり, ケルト説話を源とする考えが有力。聖杯Graal(英語はGrail)を扱った最初の作品は フランスの詩人クレティアン・ド・トロアの《ペルスバルまたは聖杯物語》(1185ころ)。 主人公が漁夫王の城で目にしたふしぎな行列,血の滴る槍と光り輝く聖杯について, 心に抱いた質問を口に出さなかった失敗がすべての発端であった。… ttps://kotobank.jp/word/Graal-1233958 : デフォルトの名無しさん [sage] 2018/03/21(水) 15:19:20.83:v2KUYd83 JavaのコードをKotlinにIntteliJさん使って変換すると fun hogehoge(value: String): Int? { var value = value みたいなコードでName shadowedってワーニングがでる 仕方ないのでvar_value = valueみたいに名前変えてんだけど、どうするのがベストかな?これ以外に良い方法あったら教えて : デフォルトの名無しさん [] 2018/03/21(水) 15:21:46.97:MTE55bx9 ウォーニング : デフォルトの名無しさん [] 2018/03/21(水) 15:34:51.57:lHxXP1st ぅおー : デフォルトの名無しさん [sage] 2018/03/21(水) 17:15:46.16:F1sATeyh Analyze>Inspect Code 結果窓で気に入らないインスペクションを選択しスパナアイコンから設定画面でdisableする : デフォルトの名無しさん [sage] 2018/03/21(水) 20:14:30.97:v2KUYd83 Inspect Codeをどこをどういじったら変わるのか分からない プロファイルってやつ? 名前の通りインテリすぎて使いこなせてない・・・orz : デフォルトの名無しさん [sage] 2018/03/22(木) 00:14:47.99:tdHViWJs def initialize (number) @number = number end Ruby のクラス内の、インスタンスメソッドの引数を、インスタンス変数に代入するなど、 @ の有無で、判別できるなら良いけど、 関数の引数と、関数内の変数は、共にローカルスコープで、 完全に、変数名もスコープも一致しているから、明らかな間違い : デフォルトの名無しさん [sage] 2018/03/22(木) 06:52:19.77:cNCV2D+g Inspectionを切れば出なくなるしなんなら無視してもいいけど、そのコードは明らかに書くべきでないからコードを直した方が良い。 引数が変数の名前を変えるべき。 : デフォルトの名無しさん [sage] 2018/03/22(木) 11:14:05.99:65GKgG7q 受け取った値に何かしらの加工を加えて返却する関数だと推測するけど それなら引数の方をrawValueにするとか、変数の方をnewValueにするとか なんでもいいけどとりあえずそのコードは俺がコードレビューするなら絶対指摘する : デフォルトの名無しさん [sage] 2018/03/25(日) 18:43:29.93:xXe3d6X4 Javaで a instanceof CharSequence[] してた部分はKotlinではどう置き換えたらいいでしょうか? a is Array<CharSequence> だとcannot check for instance of erased typeでエラーがでて型チェックができません。 : デフォルトの名無しさん [sage] 2018/03/25(日) 20:49:47.22:sH0z9dIi うちのKotlinはエラーにならないな : デフォルトの名無しさん [sage] 2018/03/25(日) 21:12:24.65:xXe3d6X4 ttps://ideone.com/IAkBb8 あれ、マジですか。Android Studioの方で駄目です。 バージョンって ext.kotlin_version = '1.2.21' これかな : デフォルトの名無しさん [sage] 2018/03/25(日) 21:41:32.67:sH0z9dIi ああ、aが実際にArray<CharSequence>のときはエラーにならないぽい Array<*>にするしかないのかなあ : デフォルトの名無しさん [sage] 2018/03/26(月) 09:16:05.43:NJeKHnKt if(a is Array<*>) { b = a.filterIsInstance<CharSequence>().toTypedArray() } とかは? : 899 [sage] 2018/03/26(月) 09:17:35.12:NJeKHnKt 途中で送っちゃった JavaのコードからAnyでくる何かの配列を扱いたいときに確かこんな感じで書いた記憶が : デフォルトの名無しさん [sage] 2018/03/26(月) 18:15:27.91:edzRf7Rx 勉強しようと思いリファレンス読みつつ Koans をやり始めた 最初は var, val や if, for とかかなと思ってたから面食らった : デフォルトの名無しさん [sage] 2018/03/26(月) 19:08:10.03:mWf0fgjW 小手ぇッ!
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。