1 名前:デフォルトの名無しさん [2018/03/19(月) 04:26:26.03 ID:GqsfT9Tb.net] JetBrainsが開発した期待の新言語Kotlinについて語りましょう https://kotlinlang.org 前スレ Kotlin 2 https://mevius.5ch.net/test/read.cgi/tech/1509462463/
698 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 20:31:33.36 ID:9CxCJ+s3.net] GoはGoogleAppEngineとセットで推されてる感じ Dartはモバイルアプリに使えるようになったけど、PWAにも対応されるのかな
699 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 21:31:14.11 ID:/7xWx8r1.net] Google A 「KotlinはAndroid開発の第一級言語」 Google B 「Dartならクロスプラットフォーム開発出来るよ」 Google C 「社内ではTypeScriptが標準開発言語ですけどね」 Google D 「Goはさらに進化する」
700 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 21:47:53.30 ID:UhwNkHWJ.net] Googleも一枚岩ではないからな
701 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 21:54:44.06 ID:058nb6Zd.net] そういうカオスなのがGoogleっぽくて嫌いじゃない Googleはインド系 Appleは中国系
702 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 22:06:52.35 ID:M3lpNFO8.net] Google的にはWebAssemblyはどの言語なんだろ Kotlin/Nativeを推してくれたりしないものか
703 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 22:36:51.97 ID:09Lu5AaC.net] GoogleはSEO最強だからどんなものでもそれなりに凄いもののように見えるけど、 実際にはGoogle自身も全く本気でやってないお遊びレベルのゴミが多いでしょ Googleって社内的には非常に一貫性の高い独自のプラットフォームがあって、世間のOSSベースな開発とはかけ離れた世界になってるらしいし
704 名前:デフォルトの名無しさん [2018/06/28(木) 05:21:24.48 ID:lL281Rpl.net] ソースは?
705 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 08:16:52.30 ID:1UW06GNd.net] googleのソースリポジトリへのコミット要件が割と厳し目なのは有名かな。 その割にgithubにあげてるのはそもそもまともに動かないものもたまにある。
706 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 11:23:25.80 ID:m6ikkjV1.net] >>693 オリバーかイカリ使ってる
707 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 20:53:17.24 ID:eWG25u0M.net] この前のHadi Haririのイベント行った奴いないの?
708 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 08:01:17.25 ID:/DvFOeR7.net] すみません、どちらに質問させて頂けるのか分からなくてこちらで教えていただければと考えてます。よろしくお願いします。
709 名前:696 mailto:sage [2018/07/01(日) 08:15:08.30 ID:/DvFOeR7.net] 1 fun func(x:int,y:(Int)->Int)=L(x) 2 func(1,{it*5}) 1行目のL(x)は何を意味しているのでしょうか? また、var y:(Int)->Int={x:Int->x*2}をfunc関数に代入するために 1行目にy:(Int)->Intを引数にして 2行目で、{x:Int->x*2}を実行しているという理解でいいのでしょうか?
710 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 08:18:15.23 ID:nOlX7v2j.net] >>682 Unityの「だってお前らこれではゲームしか作らんだろ」という割り切りっぷりは清々しい ゲーム的文法で作る以外のルートがねえw
711 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 10:29:25.00 ID:7m3QggRW.net] >>698 1行目はLという名前の関数にxを渡してるだけ fun func(x:int, y:(Int)->Int) { return L(x) } の省略表記 ただ、引数のyが無視されているので L(x) じゃなくて y(x) の間違いなんじゃねって気がする 2行目は代入云々はその理解で合ってるけど 「実行している」のではなく「定義して渡している」 実際そのコードではyが呼ばれてないのでその掛け算は実行されない
712 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 16:20:40.37 ID:nicbhK38.net] なんで、宣言のとき型と変数名逆にしたんだろうなあ、苛つくわあ
713 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 16:23:38.80 ID:nOlX7v2j.net] >>701 省略したいときウルトラ面倒になるのでやりたくなかったのだろう
714 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 16:58:23.83 ID:nicbhK38.net] val 人間:文字列=山田 気持ち悪いわあ
715 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 18:15:00.04 ID:kOaBFF1V.net] >>701 型が省略されてるものとされないものが混在したら可読性ウンコになるだろ
716 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 19:41:23.70 ID:zdyprq44.net] 以前はPASCAL, ML, Haskell、最近なら Scala, Go もこういう形で、 「型 変数」っていう順序のCスタイルの方が本来異色なんだけど。
717 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 20:18:17.04 ID:dWb7F20p.net] >>704 val a=0 int b=1 みたいな感じじゃだめだったのか気になる
718 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 20:49:55.44 ID:8aTW58+O.net] val name : String = " 名前" " String "に代入してる感覚があるから、わかりにくのは事実だわなw
719 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 20:53:31.14 ID:dWb7F20p.net] >>707 これよこれ Aをhogeという型で代入 hogeという型のAに代入 好みかな…
720 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 21:01:29.33 ID:kOaBFF1V.net] >>706 それだと val int a = 0 val b = 1 になるやん
721 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 21:31:28.10 ID:sOb0a/fB.net] 文芸的プログラミングというやつで、 val name: String はname of Stringと見えるから英語の順序的にはこのほうが自然
722 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 21:38:16.02 ID:nOlX7v2j.net] てゆーか>>703 の例の時点でさくっと英語理屈を出してあげたほうが混乱がなかったと思う じゃあなんでC族がそうなってないかって? Cだからそんな面倒なことしねーんだよお前側が機械に合わせろw
723 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:01:00.11 ID:q7RVjG2e.net] 日本語話者の一般的な認知様式は 鳥の模型>模型の鳥 名前を表す文字列>文字列で表された名前 だし、日本語でも 変数名:型 の方が言語的には自然では
724 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:20:03.34 ID:InQHnS3f.net] 数字の n は 42 文字列の s は "42"
725 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:26:56.25 ID:nicbhK38.net] 言葉的にはそうかもしれないが 抽象度の順じゃないつうのがねー これがモヤっとする原因 哺乳類>人間>山田
726 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:31:27.77 ID:R8XGd50K.net] >>714 うるせーそれが仕様だ 慣れろバカ
727 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:50:43.53 ID:q7RVjG2e.net] >>713 それも大抵の日本人は nは数字の42 sは文字列の"42" と表現すると思うよ
728 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:55:24.40 ID:+8z4/crF.net] 単純に慣れだと思うんだけどなぁ コード読むときに >>713 >>715 みたいな考えいちいち経由しないでしょ
729 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 23:01:37.60 ID:8aTW58+O.net] kotlinの基本に慣れる為に val name : String = " 名前" "定数"の"name"には"String型"の"値"を入れる と言う解釈がすんなり行けるかな
730 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 23:08:56.02 ID:raAwvdUY.net] val name: String = "..." "name" is a string: "John Smith" 「名前」は文字列、"山田花子" 打ってる時はだいたいこういう感じの思考の流れがある
731 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 23:19:27.43 ID:CPfYnrTw.net] >>718 define a variable "name" as a string and assign a value "名前" to it って読むんだよそれ
732 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 23:20:47.61 ID:InQHnS3f.net] valなのにvariable wwwww
733 名前:デフォルトの名無しさん [2018/07/01(日) 23:27:05.41 ID:yaDvqYhr.net] 昔々PascalというかDelphiをよく使っていたので変数名、形の順でも違和感なし。 Oracle の PL/SQL も確かそうだったな。 Cも昔からよく使ってるけどね。Javaは趣味で使う程度かな。
734 名前:デフォルトの名無しさん [2018/07/01(日) 23:30:37.32 ID:yaDvqYhr.net] そういやKotlinは val a, b, c : Int みたいに書いてまとめて宣言できないんだっけ?できた?
735 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 00:28:48.57 ID:QmQNg+H0.net] >>709 javaとかこんなんじゃなかったっけ
736 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 00:29:30.51 ID:QmQNg+H0.net] >>709 >>706 のことね
737 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 02:31:32.49 ID:oF5BHAcS.net] 変数名とコロンの間にスペース入れるのは規約違反?
738 名前:デフォルトの名無しさん [2018/07/02(月) 04:08:17.17 ID:M/CoMLX8.net] >>726 エラー出ないから言語としては良いのでは? 関係ないが>>723 で書いたやつは試したらダメだった。
739 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 10:54:34.73 ID:sDkOSnE9.net] >>726 IntelliJのCode Style設定ではどちらも選べるようになってるから、どちらでもいいんでない
740 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 12:07:35.37 ID:eli6Ofbc.net] >>727 ,728 そーなのか なんとなく型はスペース無しで継承はスペース有りかと ありがとりん
741 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 15:54:18.89 ID:fF3oZnn5.net] そうそう型と継承が同じ記法だからごちゃごちゃするよな どうせならすべて動的型付けにすればよかったのに
742 名前:デフォルトの名無しさん [2018/07/02(月) 16:24:41.26 ID:6MU/ELtX.net] 動的型付けだと、存在意義全否定だろ。 Groovyでも使っとけ。
743 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 20:41:56.60 ID:nCi8FeLN.net] 型推論と動的型付けを混同すんなよ
744 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 21:15:16.60 ID:BzTTxziN.net] >>700 お礼が遅れてすみません。 仰る通り、記載ミスで、y(x)です。 ご解説ありがとうございます。 すっきりしました。ありがとうございます。
745 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 21:24:23.77 ID:EvLqbtyu.net] >>733 うむ。精進なされよ。
746 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 23:00:47.89 ID://b/At4I.net] 慣れたら型が後の方が可読性高く感じる それと構文解析しやすくなるのもあるんじゃね Kotlinでの (T1,T2)->R はJavaでは BiFunction<T1,T2,R> 型が先だと関数型(function type)が他の構文と衝突しないよう識別子やジェネリクス型を置くことになる
747 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 00:00:46.54 ID:GdB7bYPq.net] (TT^TT)
748 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 00:39:55.52 ID:TIu9/k2l.net] 関数の返値の変数の型も指定できるから、そっちのほうはわかりやすいんじゃないかな fun hoge(): String = "ぬるぽ" 関数型プログラミングだと、そういう形式のほうがわかりやすいんじゃないかと思う val hoge: () -> String = fun(): String = "ぬるぽ"
749 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 09:23:57.08 ID:5ohzf/bH.net] >>737 ガッ
750 名前:デフォルトの名無しさん [2018/07/03(火) 10:05:34.13 ID:2Hrfam1D.net] 慣れの問題じゃなあかなあ
751 名前:デフォルトの名無しさん [2018/07/03(火) 10:06:19.13 ID:2Hrfam1D.net] うう。スマホのフリック入力で失敗した。
752 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 10:07:52.88 ID:ng0Ex9q0.net] >>739 人間歳をとると新しいものに慣れるのに時間がかかるようになる そしてこのスレはおっさんのすくつだ
753 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 10:19:34.86 ID:lMsOY+nb.net] このスレの人たち、今だにガラケー使ってそうだな いつまで慣れの問題でギャーギャー言ってんだよ
754 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 10:40:19.23 ID:pQbF/VH/.net] >>740 「い」の入力失敗率はあじょう。 人間工学的におかしあ。 あちばん遠あからな。
755 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 11:32:14.53 ID:jh9a6Llj.net] >>742 幸か不幸かどこぞの板と違って末尾で判断できない
756 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 15:12:48.33 ID:k8WNCQ/C.net] kotlinのコロン( : )ってどんな働き・役割なのですか?
757 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 15:56:30.11 ID:k8WNCQ/C.net] もう一つ質問させてください 1. class chiba{ } 2. class chiba(){ ] 3. class chiba(city:String="--"){ } 1はコンストラクタは持たない 2は自動でパラメータのないコンストラクタが生成される 3は( )内でパラメータを初期化し{ }がコンストラクタになる という理解でいいのでしょうか?
758 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 16:38:20.61 ID:h4wqJ0lA.net] >>745 単独では何の働きも役割もない ただの区切り文字
759 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 20:19:53.43 ID:rBmEiF9u.net] >>746 以下4行は同一、下に行くほど省略表記なだけ コンストラクタは自動的に作られる class chiba constructor() { } class chiba() { } class chiba { } class chiba コンストラクタ(プライマリコンストラクタ)の中身は 初期化ブロック( init{...} )とインスタンス変数の初期化 具体的にコードで https://ideone.com/KpwsQl リファレンス https://kotlinlang.org/docs/reference/classes.html
760 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 20:54:14.27 ID:ODNzvHJa.net] ObservableFieldの説明を見ていたら、 https://developer.android.com/reference/android/databinding/ObservableField public final ObservableField<String> first = new ObservableField<String>(); public final ObservableField<String> last = new ObservableField<String>(); public final ObservableField<String> display = new ObservableField<String>(first, last) { @Override public String get() { return context.getResources().getString(R.string.name, first.get, last.get()); } }; 既存のObservableFieldを組み合わせて新しいObservableFieldを作るようなコードが載っているので、 そのままコピペして試してみたんですが、コンパイルが通らないんですがどうしたらいいですか
761 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 21:10:49.57 ID:egr/fzRr.net] >>749 コンパイルエラーのエラーメッセージを読む
762 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 21:13:11.08 ID:b3yF7W7d.net] それJavaじゃん Kotlinで書く
763 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 21:34:21.57 ID:ODNzvHJa.net] Kotlinに変換しても同じだった エラーメッセージは以下だが、何を治したらいいのか Cannot resolve constructor 'ObservableField(...)'
764 名前:デフォルトの名無しさん [2018/07/04(水) 04:50:43.63 ID:deFmQ17L.net] スレ違いの
765 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 04:54:54.94 ID:/r54tfMO.net] コトリヌス
766 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 07:37:22.00 ID:QS1wdrQw.net] >>752 だからKotlinで書けよ 自動変換は完璧じゃない
767 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 07:37:52.39 ID:K6PpspCw.net] 基礎からやっていくか、状況をちゃんと説明出来るようになるか
768 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 07:42:41.16 ID:d8xWcdxC.net] 初心者でせっかくだらjavaよりも新しいkotlinでやろうと勉強中なんだけど、結局javaも知らんといかんのね…
769 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 07:54:41.64 ID:qSU3AFLq.net] 「こんぱいるとおりません」は実際なんも説明してねーからな で、「ほんとうに」全部自分でゼロから作るならJavaの知識は不要なのだけど 実際はJavaの内部ライブラリやJava製の外部ライブラリを利用するorさせられることが多いので Javaは少なくとも読めて呼び出し法くらいは知っておかないと現状余裕で詰まる
770 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 08:34:41.84 ID:dJOGt5Qc.net] 普通に、コンストラクタの引数がちがうか、importしてないか、importするための設定をbuild.gradleに書いてないかだろ
771 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 08:39:44.33 ID:hww1W9rh.net] ああそのレベルならimportしてないが有力だな、確かにw
772 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 08:42:59.27 ID:bgzrJhKa.net] ビルド通ったやついるん?
773 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 10:08:54.78 ID:lcEaonpe.net] importしてないならその前でコケるだろjk sdkのバージョン違いじゃないの?
774 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 10:40:04.79 ID:dJOGt5Qc.net] build.gradleのandroid {} のなかに dataBinding { enable = true } 書いて、ObservableField のとこで Alt + Enter すれば、必要なimport が追加されたよ
775 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 11:34:18.64 ID:Fv6I2084.net] return context.getResources().getString(R.string.name, first.get, last.get(); ここの行のfirst.getもfirst.get()のはずだし、公式のサンプルコードがおかしいんじゃねえの
776 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 11:39:55.59 ID:PJj9ZCzu.net] >>748 ありがとうございました!
777 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 14:18:24.41 ID:6R9abQ63.net] kotlinはネット投稿越しの説明デバッグが面倒くさい…
778 名前:デフォルトの名無しさん [2018/07/04(水) 15:27:56.70 ID:hVA06Lo9.net] >>723 に書いたやつはできないがこういうのはできるのな。 val (a, b, c, d, e) = listOf(1, 2, 3, 4, 5) ただし5つまで。理由は component1() 〜 component5() を使うため。
779 名前:デフォルトの名無しさん [2018/07/04(水) 16:47:52.07 ID:n4h9hTEh.net] はい https://goo.gl/k4ehdm
780 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 19:03:02.55 ID:Uqt21yY2.net] >>768 グロ
781 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 19:20:22.52 ID:dJOGt5Qc.net] >>766 kotlin はテキストのコピペで説明できるから簡単じゃね? VS使ってるとスクリーンショット使わないと説明できないこと多くて大変
782 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 19:41:26.22 ID:yHhNx3G5.net] >>770 >VS使ってるとスクリーンショット使わないと説明できないこと多くて大変 たとえば?
783 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 21:42:39.79 ID:KFDu9ptB.net] それもまたスクリーンショットを使わないと説明できないのです。
784 名前:デフォルトの名無しさん [2018/07/04(水) 21:47:17.49 ID:gFgZc5FG.net] 9MT
785 名前:デフォルトの名無しさん [2018/07/05(木) 06:52:07.84 ID:3UdVdS3q.net] つまりVSは抽象概念だった?
786 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 18:11:14.13 ID:1+w/aSOe.net] JVM系でのことりんのポジションって.Net系だと何になるの?
787 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 18:25:29.62 ID:em8VdMHP.net] すみません。ラムダ式について質問させてください。 純粋にkotlinじゃなくてすみません。 import kotlin.concurrent.* fun main(args:Array<String>){ var a1=Pn("A") var a2=Pn("B") var a3=Pn("C") thread{a1.en()} thread{a2.en()} thread{a3.en()} } class Pn(nm:String){ fun en(){ for(i in 1..5){ println("${nm}:${i}") } } } thread{a1.en()}の波括弧内はラムダ式ということなのですが、 もともとの関数の記述って、どんな記述になりますか? a1:Pn->a1.eat() とかですか?
788 名前:デフォルトの名無しさん [2018/07/05(木) 18:48:07.71 ID:9m4qXusF.net] 質問の意味がわからない
789 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 19:37:20.63 ID:gU4M+kls.net] >>776 いや、そのラムダは引数に何も受け取ってないよ クロージャになってて外側のa1とかの変数をキャプチャしてるだけ JavaScriptとかの書き方で言えば () => { a1.en() } みたいな感じ
790 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 20:08:46.41 ID:bx98WRX+.net] クロージャ使うのは一苦労じゃ
791 名前:デフォルトの名無しさん [2018/07/05(木) 20:17:49.90 ID:9m4qXusF.net] 【審議中】 ∧,,∧ ∧,,∧ ∧ (´・ω・) (・ω・`) ∧∧ ( ´・ω) U) ( つと ノ(ω・` ) | U ( ・) (・` ) と ノ u-u (l ) ( ノu-u `u-u’. `u-u’
792 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 20:57:09.18 ID:n+w19a7Z.net] >>776 fun lambda1() { return a1.en() } thread( lambda1 )
793 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 22:45:45.28 ID:zhHpKoz0.net] コチン星は他に転用できないでしょ Javaは何にでも使える コチン星がそうなったら移住してやんよ
794 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 22:54:46.98 ID:gU4M+kls.net] 逆なんだよなあ
795 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 22:58:33.72 ID:y9cLPe3E.net] 現実には逆だね Kotlin使ってるような奴はJavaはもちろん他にも複数の言語使える
796 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 07:14:19.59 ID:BcpJI+Hp.net] 今kotlin使ってるやつはJavaとSwiftは書けそうだよな あと聞くところによるとずっとRuby使ってたweb系の人たちの間でkotlinの人気があるらしい
797 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 08:51:02.46 ID:8OYGWEQ0.net] KotlinとSwiftは似ているから iOSとAndroidでお互いのコードを参考にしやすいという点でも Kotlinを使ったほうが良いよね
798 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 09:06:38.50 ID:QElqX86J.net] >>778 >>781 ありがとうございました! 納得できました。またよろしくお願いします!感謝です