JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
https://kotlinlang.org
※前スレ
http://mevius.5ch.net/test/read.cgi/tech/1521401186/
Kotlin 4
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/07/17(火) 18:00:27.88ID:PDZGrLP22018/07/18(水) 22:44:24.79ID:3bDqFXKr
これおもしろいな、aをnull許容型にしないとインスタンスできないだろ
Javaだとそんなこと考えることもなかった
Javaだとそんなこと考えることもなかった
2018/07/19(木) 00:32:31.04ID:neesrQsq
試してないけど、nullobject用の派生クラスを用意して、nullobjectのaにはthis代入すりゃいいんじゃない?
2018/07/19(木) 01:00:01.34ID:CV+7JOtj
2018/07/19(木) 01:09:56.19ID:JUgZbHsB
これはと思い階乗計算してみたが、微妙…orz
class A(n : Int, f : Int = 0) {
. val a = if (n > 0) ? A(n - 1, f * n) : else { println(f); null }
}
class A(n : Int, f : Int = 0) {
. val a = if (n > 0) ? A(n - 1, f * n) : else { println(f); null }
}
2018/07/19(木) 01:12:00.05ID:JUgZbHsB
2018/07/19(木) 06:25:38.38ID:U09DDbAL
kotlinスレの優しさは異常
2018/07/19(木) 09:17:29.25ID:7c8TqsUT
地獄への道は善意で舗装されている
みたいな
みたいな
2018/07/19(木) 09:25:33.22ID:1WhS78Yi
>>19
そこ(Nullableと非Nullable)がことりんの最大の特徴だから、ぜひちゃんと理解して使いこなしてあげてね。
そこ(Nullableと非Nullable)がことりんの最大の特徴だから、ぜひちゃんと理解して使いこなしてあげてね。
2018/07/19(木) 21:01:30.52ID:ovyKVv/0
intellij入れたんだけど
runしようとするとmain classを入力してって言われるんだけど
関数だけでrunできないですか?
runしようとするとmain classを入力してって言われるんだけど
関数だけでrunできないですか?
2018/07/19(木) 21:13:04.00ID:PZz/R6AK
>>25
ユニットテストからなら
ユニットテストからなら
2018/07/19(木) 22:05:47.90ID:U09DDbAL
2018/07/19(木) 22:51:52.90ID:ovyKVv/0
2018/07/19(木) 22:57:46.33ID:tijWK+5B
>>28
main関数の書いてあるエディタのタブ部分を右クリックでメニューからのRunはどう?
main関数の書いてあるエディタのタブ部分を右クリックでメニューからのRunはどう?
2018/07/20(金) 01:12:02.79ID:uIqPJHG1
fun main(args: Array<String>) { } をクラスの外に作った瞬間にその行の左に緑の三角が表示されて、そこから実行できるね
クラスの定義は無くてもいいけど、クラスの中じゃダメだ
クラスの定義は無くてもいいけど、クラスの中じゃダメだ
2018/07/20(金) 06:18:13.10ID:vo0BuOhE
>>27のやり方で普通に動いたよ。
左側のProjectペインから、その実行したいktファイルを右クリックして、そこからRunしてもだめ?
もしくは上の方にあるRun configurationを一回削除してから同じことをしてみるとか。
左側のProjectペインから、その実行したいktファイルを右クリックして、そこからRunしてもだめ?
もしくは上の方にあるRun configurationを一回削除してから同じことをしてみるとか。
2018/07/20(金) 06:24:04.39ID:vo0BuOhE
33デフォルトの名無しさん
2018/07/20(金) 09:18:38.44ID:+BuQOMxB >>25
状況がよくわからないからそのエラーが出た時のスクリーンショット取って見せて。ソースが表示されてる状態のな。
状況がよくわからないからそのエラーが出た時のスクリーンショット取って見せて。ソースが表示されてる状態のな。
2018/07/20(金) 09:31:09.84ID:fn5Hn7HH
Kotlinスレの半分は優しさで出来ています
2018/07/20(金) 12:27:14.89ID:Gl3WHizs
残りの半分はXamarinで出来ています
36デフォルトの名無しさん
2018/07/20(金) 12:34:08.35ID:+BuQOMxB それだけはお許しください
2018/07/20(金) 18:21:03.22ID:4pHi4ryF
Delphiがアップを始めました
3828
2018/07/20(金) 22:04:55.35ID:1Jm4m9CR みなさん回答ありがとうございました
新しいプロジェクトでやったらできました。
おそらく原因はNewでファイルを作るときにkotlin scriptを選んでしまったためだと思われます
srcディレクトリ直下にkotlin file/class
でファイルを作ったら実行できました。
新しいプロジェクトでやったらできました。
おそらく原因はNewでファイルを作るときにkotlin scriptを選んでしまったためだと思われます
srcディレクトリ直下にkotlin file/class
でファイルを作ったら実行できました。
2018/07/20(金) 22:56:26.76ID:8Ywhahgu
Xamarinみたいな糞でやるからそうなる
2018/07/21(土) 00:11:05.11ID:/p8fRGKp
2018/07/21(土) 00:19:38.66ID:IhfWEhYc
あ、そこまで頭回らんかった
kotlin 作ったやつが一番辛い案件だな
kotlin 作ったやつが一番辛い案件だな
2018/07/21(土) 00:56:25.52ID:fcZsLQAf
今更、LinuxベースじゃないOS作ったから使えよ!って言われて流行ると思う?
43デフォルトの名無しさん
2018/07/21(土) 02:48:12.63ID:5tjqiit9 Kotlin は今はとにかく JavaVM で動くコードを出すコンパイラで Android 開発で使って貰って
世界中に広めてある程度定着させれば良い。その隙にネイティブとか新OSの実行環境用コードを
出すコンパイラを作ってくれれば問題なし。そして Java は死亡して Kotlin は生き残る。
世界中に広めてある程度定着させれば良い。その隙にネイティブとか新OSの実行環境用コードを
出すコンパイラを作ってくれれば問題なし。そして Java は死亡して Kotlin は生き残る。
2018/07/21(土) 03:41:06.56ID:/p8fRGKp
JavaVMなどの他の環境の寄生をやめるなら基本的なクラスライブラリはどうするんだ?
コンパイラだけじゃダメじゃね。javaみたいなコレクションフレームワークやらHttpやソケットライブラリあたりも標準で用意してくれないとね。というか寄生やめるならUIフレームワークも必要じゃねぇ?無理だな。
サーバーサイドならいらんが。
コンパイラだけじゃダメじゃね。javaみたいなコレクションフレームワークやらHttpやソケットライブラリあたりも標準で用意してくれないとね。というか寄生やめるならUIフレームワークも必要じゃねぇ?無理だな。
サーバーサイドならいらんが。
2018/07/21(土) 04:12:26.67ID:/p8fRGKp
ごめん。寄生やめるって話じゃなくて今はとりあえずandroidに寄生してその間に広めてその後は他の寄生先見つけりゃいいって話しかな?
46デフォルトの名無しさん
2018/07/21(土) 05:31:45.74ID:5tjqiit9 寄生しても良いし、根底から全部作っても良いが、とにかく生き延びる率は非常に高いと思う。
まあでもネイティブでライブラリ全部作るとしてもそんなに時間掛からないんじゃないかな。
問題はどういうやつを作るかだと思う。
まあでもネイティブでライブラリ全部作るとしてもそんなに時間掛からないんじゃないかな。
問題はどういうやつを作るかだと思う。
2018/07/21(土) 07:39:28.20ID:VkZ+bXk1
Kotlin良い言語だからもったいないよな
というか新OSに入れ替わるとしても、既存のAndroidアプリ資産を無視するわけがないから何かしらの互換は保たれると思うけど
というか新OSに入れ替わるとしても、既存のAndroidアプリ資産を無視するわけがないから何かしらの互換は保たれると思うけど
2018/07/21(土) 10:59:13.01ID:t4jiwmBJ
JavaFXをKotlinで拾ってくれないかな?
OpenJDK+OpenJFX+Kotlinでまとまってくれれば
みんな幸せ
OpenJDK+OpenJFX+Kotlinでまとまってくれれば
みんな幸せ
2018/07/21(土) 11:41:25.99ID:y3BqVxSU
2018/07/21(土) 16:00:14.10ID:221nLgMb
なにこれ、最近kotlin始めたばかりなのに終了かよwwww
2018/07/21(土) 16:53:29.87ID:46p4VUdt
Fuchsiaが普及するとしてもその頃にはKotlin/Nativeも出来上がってるでしょ
ただ、Googleの進め方を見るにKotlin/Dartの実装も検討した方がいい気はする
ただ、Googleの進め方を見るにKotlin/Dartの実装も検討した方がいい気はする
2018/07/21(土) 16:55:38.31ID:WkMM9u36
Dart程の糞はない
2018/07/21(土) 17:08:37.75ID:/p8fRGKp
まぁ、でもnull safetyを存分に味わうにはkotlinが標準クラスライブラリを用意してくれるのがいいんだけどね。
2018/07/21(土) 20:32:33.33ID:VkZ+bXk1
結局javaのライブラリに依存しちゃうもんねえ
2018/07/22(日) 00:48:56.80ID:OFbuHuIw
その点、オラクルってメシウマだよな
2018/07/22(日) 01:05:02.82ID:GtV7CUdI
2018/07/22(日) 06:57:39.00ID:i3g7mAqR
2018/07/22(日) 08:47:40.36ID:y9EBDYOa
>>53
せめてnull safety対応generics欲しいよね。
せめてnull safety対応generics欲しいよね。
2018/07/22(日) 22:12:01.65ID:Hs61oce8
JSはいっそ無くしても良いと思うけどねえ
2018/07/22(日) 22:33:54.14ID:T6gtJfck
ことりんjsにトランスできたんか…
61デフォルトの名無しさん
2018/07/23(月) 02:10:39.62ID:CBB4e6ta できるそうだがやったことがない・・・やればいいんだなw
2018/07/23(月) 06:25:10.31ID:Ot4A38Sz
遊びで触ったことあるけど、メリットを何も感じなかった。
特に他のJSライブラリを使うのがえらく面倒くさい。
特に他のJSライブラリを使うのがえらく面倒くさい。
2018/07/23(月) 07:32:27.66ID:9Edc2hOd
サーバーサイドでKotlin使ってたら有用な面もある
計算やチェック処理なんかをクライアント側と共用出来るから
計算やチェック処理なんかをクライアント側と共用出来るから
2018/07/23(月) 09:37:43.10ID:Ifg+U+KZ
JSいらんから、その分の労力をNativeに注力してくれ
2018/07/23(月) 10:28:50.79ID:SDK/XMQD
>>40
>C言語、C++、Dart、Go、Python、Rust、シェルスクリプト、Swift、TypeScript
この中で生産性の良く主流になりそうな言語ってどれだろう?
PythonかSwiftくらい?
>C言語、C++、Dart、Go、Python、Rust、シェルスクリプト、Swift、TypeScript
この中で生産性の良く主流になりそうな言語ってどれだろう?
PythonかSwiftくらい?
2018/07/23(月) 12:13:07.35ID:50E/dJn+
67デフォルトの名無しさん
2018/07/23(月) 12:16:53.60ID:dqTrBb4W それ最後に書いてあるよ。
暑さには要注意だ。脳が暖まり過ぎると段々おかしくなる。
暑さには要注意だ。脳が暖まり過ぎると段々おかしくなる。
2018/07/23(月) 22:50:39.12ID:+BbazrC1
>>66
キモナイ
キモナイ
2018/07/23(月) 23:41:47.31ID:TlqhU3AK
入れたときの型そのままで取り出せる汎用的なmap的なもんって実装できないかな
2018/07/24(火) 00:08:17.47ID:yMVTYfnp
Keyの型にValueの型を持たせればできそう
2018/07/24(火) 00:25:53.51ID:jxAZ77iY
>>69
Anyとスマートキャスト利用するしかないだろうなあ
Anyとスマートキャスト利用するしかないだろうなあ
2018/07/24(火) 02:12:36.15ID:kG3RWdPq
2018/07/24(火) 06:13:07.75ID:43FBDpPt
>>72
確かにJavaに似てるけど、あれは普通のJSの拡張みたいなもんだから使いやすい、というか既にめっちゃ使われてる
確かにJavaに似てるけど、あれは普通のJSの拡張みたいなもんだから使いやすい、というか既にめっちゃ使われてる
2018/07/24(火) 06:36:17.05ID:Nja0DAi0
>>73
KotlinよりTypescriptの方が流行る?
KotlinよりTypescriptの方が流行る?
2018/07/24(火) 06:45:51.05ID:lb/L6e2D
用途が違いすぎるから比較できない。
2018/07/24(火) 07:40:56.91ID:rJ60Fij8
TSからJS呼ぶときに戻り値の型意識しなきゃいけないことにイラつく感覚がKotlinからJava呼ぶときにnull意識しなきゃいけないときにイラつく感覚と似ている
2018/07/24(火) 07:44:57.16ID:m3eQtKeT
めっちゃ分かる
2018/07/24(火) 09:54:20.04ID:iluy9i/G
てか、CとTypescriptとその他を比較する意味あんのか?
分野が違いすぎんだろ
分野が違いすぎんだろ
2018/07/24(火) 10:58:03.97ID:HALI/+e7
null安全特有のバグが入ったり
null安全のためにコードが長くなったりで
あんまメリットない気がしてきた
null安全のためにコードが長くなったりで
あんまメリットない気がしてきた
2018/07/24(火) 11:05:46.42ID:fNoqjXR2
Javaが有償化するけど、Kotlinにも影響ある?
2018/07/24(火) 11:08:31.26ID:lb/L6e2D
なんで影響がないと思ったのか
2018/07/24(火) 11:47:22.80ID:fNoqjXR2
いやひょっとしたら、JetBrainsがいい感じでやってくれるかと...
2018/07/24(火) 11:56:29.41ID:dd1bPMMo
2018/07/24(火) 12:01:17.61ID:GyqBpo0D
2018/07/24(火) 12:13:14.69ID:rzcjvCjX
>>83
最近ちょこちょこ聞くようになった依存型がこれに使えるのね
最近ちょこちょこ聞くようになった依存型がこれに使えるのね
2018/07/24(火) 12:15:58.38ID:rzcjvCjX
>>79
null安全が好きでないなら、動的型付言語を使ったほうが幸せになれるんじゃない?
null安全が好きでないなら、動的型付言語を使ったほうが幸せになれるんじゃない?
2018/07/24(火) 12:37:31.12ID:GyqBpo0D
2018/07/24(火) 12:37:44.64ID:lb/L6e2D
JetBrainsJDKは理想だけど、さすがにそんなことやるほど体力のある会社じゃないだろ
2018/07/24(火) 12:38:02.51ID:loJnpDBw
>>79
煽るわけじゃなく、純粋に知りたいのだけど、null安全特有のバグって、どんなのがあるの?
煽るわけじゃなく、純粋に知りたいのだけど、null安全特有のバグって、どんなのがあるの?
2018/07/24(火) 12:47:46.02ID:lb/L6e2D
null安全のために記述が長くなるってのもよく分からんな
kotlinはそうならないようにかなり配慮されてると思うのだけど、もしかしていちいち全部ifでnullチェックでもしてるんじゃないの
kotlinはそうならないようにかなり配慮されてると思うのだけど、もしかしていちいち全部ifでnullチェックでもしてるんじゃないの
91デフォルトの名無しさん
2018/07/24(火) 13:09:50.01ID:DcwsX7CJ2018/07/24(火) 13:19:48.44ID:lb/L6e2D
LTSしてくれるならね
2018/07/24(火) 18:26:44.44ID:43FBDpPt
RedHatがOpenJDK11を独自にLTSするらしいから、RedHat系のディストリビューション使ってるなら大丈夫だろ
ubuntuは知らん
ubuntuは知らん
2018/07/24(火) 18:37:37.15ID:06VgvsWU
null安全のせいでコードが長くなるのは
・nullを返しうるメソッドだけど今回に限っては絶対にnullじゃない
ってケースで !! の2文字が増えるぐらいでは
・nullを返しうるメソッドだけど今回に限っては絶対にnullじゃない
ってケースで !! の2文字が増えるぐらいでは
95デフォルトの名無しさん
2018/07/24(火) 18:40:45.65ID:uYKauRtK >>93
つまりWindowsは死亡と。
つまりWindowsは死亡と。
2018/07/24(火) 18:47:44.94ID:43FBDpPt
>>95
これを機にWndowsServerなんてカスは滅ぼそう
これを機にWndowsServerなんてカスは滅ぼそう
2018/07/24(火) 18:51:34.06ID:fUz7lDXQ
AdoptOpenJDKが無償のLTS提供するよ
2018/07/24(火) 19:06:30.65ID:/05DIiMI
2018/07/24(火) 19:30:50.32ID:dd1bPMMo
>>87
val map = HashMap<String, 抽象的な何か>()
map["hoge"] = "文字列"
map["fuga"] = 100
val str = map["hoge"] // :String
val num = map["fuga"] // :Int
みたいな感じで
とにかく型チェックやらキャストやらが面倒くさい
実際には自作クラスとかも突っ込みたい
val map = HashMap<String, 抽象的な何か>()
map["hoge"] = "文字列"
map["fuga"] = 100
val str = map["hoge"] // :String
val num = map["fuga"] // :Int
みたいな感じで
とにかく型チェックやらキャストやらが面倒くさい
実際には自作クラスとかも突っ込みたい
100デフォルトの名無しさん
2018/07/24(火) 19:54:27.68ID:K9O8BSac 試してないんで適当言うけど
Class.forName(className).kotlin.cast(value)
とかでなんとかならんの
Class.forName(className).kotlin.cast(value)
とかでなんとかならんの
101デフォルトの名無しさん
2018/07/24(火) 20:39:35.62ID:3bmjSXS4 >>99
型チェックなしだと取り出した変数が何型になっているかわからなくて結局扱えないのでは?
型チェックなしだと取り出した変数が何型になっているかわからなくて結局扱えないのでは?
102デフォルトの名無しさん
2018/07/24(火) 20:48:13.92ID:7FTYhXzS その後処理分ける時点で型は見ることになりそう
103デフォルトの名無しさん
2018/07/24(火) 21:04:13.34ID:2ywwbIJ/ すまん伝わりやすいかと思って抽象的な何かって書いたけど語弊があるわ
まず抽象クラスやらスーパークラスやらこの時点で指定してたらダメだしな
ちなみにarrow-ktのHListはタプルみたいな感じになってた
まず抽象クラスやらスーパークラスやらこの時点で指定してたらダメだしな
ちなみにarrow-ktのHListはタプルみたいな感じになってた
104デフォルトの名無しさん
2018/07/24(火) 21:09:27.91ID:VXjn8z1z マップに値を突っ込む人は中身の詳細を知らなくて、値を取り出す人はどのキーに何が格納されているか知っているようなシチュエーション、例えば設定ファイルのローダーみたいな奴への適用ならわからんでもない。
105デフォルトの名無しさん
2018/07/24(火) 21:17:20.64ID:2ywwbIJ/ 何に使う気かっていうとJSFでFlushっていう画面間で値渡すためのMapがあるんだけど、型チェック面倒くさいしチェックしないのも嫌だしでいっそ別に用意できないかと思った
入れるときも取り出すときも型は分かってる状況だな
入れるときも取り出すときも型は分かってる状況だな
106デフォルトの名無しさん
2018/07/24(火) 21:30:43.77ID:pjRgCp/n XMLなりで文字列化しといて使うときにデシリアライズすれば?
107デフォルトの名無しさん
2018/07/24(火) 21:57:49.15ID:43FBDpPt keyごとに型が決まってるならjson文字列にしておいてGson使って取り出すとか
108デフォルトの名無しさん
2018/07/24(火) 22:34:12.22ID:GyqBpo0D >>99
Mapに代入のみで型認識するのは難しいな
タプル的な感じでやるか
https://ideone.com/Aekjqn
事前定義でMapに関連付けるか
https://ideone.com/rCFcai
むしろ変数に型が無い言語使うか
https://ideone.com/BUHFe3
Mapに代入のみで型認識するのは難しいな
タプル的な感じでやるか
https://ideone.com/Aekjqn
事前定義でMapに関連付けるか
https://ideone.com/rCFcai
むしろ変数に型が無い言語使うか
https://ideone.com/BUHFe3
109デフォルトの名無しさん
2018/07/24(火) 23:50:03.73ID:2ywwbIJ/110デフォルトの名無しさん
2018/07/24(火) 23:53:36.51ID:jFaMrYyE 動的型言語「呼んだ?」
111デフォルトの名無しさん
2018/07/24(火) 23:59:34.61ID:0G/WUWgn よく調べないで書くけどMapでしか渡せないならMapの値にクラス突っ込めないの
112デフォルトの名無しさん
2018/07/25(水) 00:05:15.27ID:Mo9tZ0hU 普通に data class 書くかイヤなら動的型使え案件だな
113デフォルトの名無しさん
2018/07/25(水) 00:32:44.86ID:X9aSb7/J 動的型付言語でもMapから取り出したインスタンスに何かするにはそのインスタンスの型のチェックは必要なんだから、
KotlinでもAnyの変数に取り出した後、何かするとき型チェックすればいいのでは?
KotlinでもAnyの変数に取り出した後、何かするとき型チェックすればいいのでは?
114デフォルトの名無しさん
2018/07/25(水) 00:41:37.28ID:7AbAukpx >>109
汎用的ってどういうこと?
汎用的ってどういうこと?
115デフォルトの名無しさん
2018/07/25(水) 02:34:30.53ID:NuE3ewHE 一回シリアライズするとか正気かよ。
inline fun <reified T: Any> cast(any: Any): T = T::class.javaObjectType.cast(any)
val i = cast<Int>(map["hoge"])
inline fun <reified T: Any> cast(any: Any): T = T::class.javaObjectType.cast(any)
val i = cast<Int>(map["hoge"])
116デフォルトの名無しさん
2018/07/25(水) 02:52:17.20ID:X9aSb7/J Mapのキーの文字列に対して格納されてる型が決まってるのか
エラーチェック無しで間違ったのが入ってたら例外で良いなら、そんな感じにキャストでいいかもね
エラーチェック無しで間違ったのが入ってたら例外で良いなら、そんな感じにキャストでいいかもね
117デフォルトの名無しさん
2018/07/25(水) 06:23:31.29ID:tppUcJNh 全角読みにくい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 巨専】
- こいせん 全レス転載禁止
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 【ATP】テニス総合実況スレ2025 Part 211【WTA】
- 両手でフレミングの法則やってくれ [577451214]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
- 日本人の海外旅行したきのマナーよくなったのはいつから
- へそグリグリ
