Kotlin 7

■ このスレッドは過去ログ倉庫に格納されています
2020/05/06(水) 16:00:38.76ID:LXTBA+hx
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
Kotlin 6
https://mevius.5ch.net/test/read.cgi/tech/1561186797/
2020/12/23(水) 19:38:57.98ID:NEftcK31
nullsafe って言うのは Null チェックしなくていいという意味じゃないよ?
チェック必要なものと不要なものを区別して、必要なものはチェックしてからアクセスしないとコンパイルエラーになるんだよ?
2020/12/24(木) 07:36:37.88ID:woO5Pxu8
>>502
普通にnullチェック入れればいいんじゃないの?
2020/12/24(木) 08:10:29.60ID:QpUzPsdF
>>502
nullチェックしながら
APIの作者にバグレポート上げろよ。
2020/12/24(木) 08:57:55.57ID:N8XXHmSr
まずレスポンスのデータクラスのフィールドををnullableにしないといけない
nonnullでもコンパイルエラーならないのにだ
2020/12/25(金) 09:41:57.24ID:yOAc+N/y
何で companion object って一番下なんすか
一番上じゃ駄目なんすか
2020/12/25(金) 11:57:59.25ID:LVz6iinV
kotlin世界との境界部分はもろもろを自分で気を付けるしかない
2020/12/27(日) 23:41:45.31ID:mqWB+gDR
>>507
文法的にはどっちでもいいよ
2021/01/01(金) 17:03:56.74ID:oTJ6QRVP
kotlin/nativeでサーバーサイド作る話はどうなった?
2021/01/02(土) 07:50:34.05ID:7+xZsyvI
SuperJobだと、子の失敗は親に影響与えないとのことですが、子をキャンセルすると親もキャンセルされてしまうとのことです

子が失敗しようが、子をキャンセルしようが親に全く影響を与えたくないのですがどうすればいいでしょうか?
2021/01/02(土) 08:31:31.17ID:7+xZsyvI
SupervisorJobだった
つか、なんかややこしくなってきた
間違ってた、SupervisorJobは子のキャンセルは親に影響しないからスーパーなのか?
2021/01/02(土) 12:00:19.22ID:7+xZsyvI
間違ってた
子Jobのcacelメソッドによるキャンセルは親が普通のJobだろうがSupervisorJobだろうが親をキャンセルさせない

子JobがCacellationException以外の例外で失敗したとき、違いがでてくるのか
2021/01/02(土) 13:51:40.78ID:iRQWAItx
おちつけ
515デフォルトの名無しさん
垢版 |
2021/01/07(木) 12:30:36.60ID:upgodNBv
明けましておめでとうございます。
ことりんもよろしくお願いします。
2021/01/07(木) 13:06:35.86ID:n0qoIkIN
酉年にやれよ
2021/01/08(金) 00:22:29.53ID:q8lyQLUk
2029年までネタとして取っておこう…
2021/01/08(金) 00:30:46.51ID:s1r0Khta
その時まで生きてるのかな、ことりん
2021/01/08(金) 07:52:19.70ID:AiUWBAU5
こぅのとぉりん生きてますよ
2021/01/08(金) 08:38:56.45ID:rfni5yw0
ことりんじゅうさまです

なんてことならないように使っていこう
2021/01/09(土) 09:13:47.78ID:ZIgIrWmA
例えばUserクラスがあって、userIdプロパティとネストしたUser型のuserプロパティがあります

このときList<User> users
から、users.map?とかcollection apiを使ってネストしたUserも含めたすべてのuserIdのリストを求める方法があれば教えて下さい

再帰関数を用意しないと無理?
2021/01/09(土) 09:19:13.14ID:ZCNL7UEp
flatmap
2021/01/09(土) 09:28:30.58ID:ZIgIrWmA
userプロパティは多段ネストする可能性があるんですがflatMapでいけましたっけ?
2021/01/09(土) 15:43:34.22ID:v5qb+Ohk
プロパティをどう辿るかはcollection apiだけじゃどうにもならないから自分で実装するしかないでしょ
扱うデータによっては重複や循環なんかも考慮が必要かも

https://paiza.io/projects/JkGNST_vjmARbX8XFfMLnA
2021/01/10(日) 00:59:41.08ID:vFHdkGQn
>>521
そのロジックに意味のあるものならUserにallChildrenUser : List<User>メソッドを作って子のallChildrenUserを呼び出す、つまり再帰構造、allChildrenUser() -> users.flatmap{ it.allChildrenUser() }
かな

ネスト構造の時点で循環参照の可能性があるわけで言語機能でどうにかなる話とは違うと思う
または、データ構造として最適なツリーを採用したほうが良いかもしれん
2021/01/10(日) 01:38:59.42ID:Kq/dusa6
自分が出来ると心から信じることができれば必ずやれる
2021/01/10(日) 20:09:18.30ID:JmQQkhyb
言語機能でどうにかなるか否かはまた別の話でしょう
データが循環していたらスタックオーバーフローなりその他の例外なりが出るように標準ライブラリが設計されていればいいだけなので
2021/01/10(日) 20:13:22.96ID:JmQQkhyb
余談だけどグラフの探索は再帰を使わなくてもループに書き換えることができる
スタックオーバーフローしなくなるのが利点
ループではなく再帰でしか解決できないアルゴリズム問題が存在し得るかどうかは不勉強なので知らない
2021/01/10(日) 20:31:18.39ID:N5z3vzVP
再帰は必ずループに出来る
2021/01/10(日) 21:54:19.01ID:YxBPzBtX
クイックソートどうすんじゃ
2021/01/10(日) 21:56:12.30ID:YxBPzBtX
木の探索は横探索すればいいか
スタックのかわりにヒープがあふれる
2021/01/10(日) 22:08:14.99ID:fqhi9u3I
whileループでbreakすればいい
2021/01/10(日) 22:25:02.75ID:GNExugp7
flatmapで何でも解決できる
534デフォルトの名無しさん
垢版 |
2021/01/22(金) 13:56:01.26ID:g1yAjsTk
じゃあflatmapで俺の資産を増やしてくれ
2021/01/22(金) 14:36:13.50ID:JAaKTTQV
flatmapと元気があれば何でもできる!
2021/01/22(金) 20:45:59.10ID:xnRnhQMQ
Kotlin Roadmap
https://kotlinlang.org/roadmap.html
2021/01/25(月) 06:26:23.02ID:hTvlKNeR
>>534
理論上はflatmapで何でも解決できるとしても、実装するには十分な数学的能力が必要なのだ。
538デフォルトの名無しさん
垢版 |
2021/01/25(月) 18:04:21.90ID:gx6uUcGg
>>537
そうか。じゃあお前なら出来るんだな。任せたぞ。
2021/01/25(月) 22:47:14.88ID:h35Snctt
プログラミングは
気合いだ

たとえば1万件のソートをするのに
処理のオーダーがどうとか
クイックソートのライブラリがないとか
代替するものをつくるかどうかとか
悩むときに

Excelにはっつけたり
2重ループで平気で馬鹿ソートする
周囲の嘲笑をものともしない決断力

そういうやつができるやつなんだ
2021/01/26(火) 08:07:03.00ID:z9KCwqI+
>>539
そういう能力の人は便利屋として安い単価で使い捨てられるだけです
2021/01/26(火) 11:42:19.41ID:V/Um6Sz0
いうほどflatmap使うか?
そりゃたまには使うけどさ
2021/01/26(火) 12:25:48.83ID:nusF9BAT
1万件程度なら普通にExcelも使うし
バカソートも使う

もちろん製品コードではそんな事はないけど
2021/01/26(火) 20:08:03.52ID:u/mIbNWf
flatmapが世界を救う
2021/01/26(火) 20:21:56.10ID:0fVnbxLr
flatmapはステータスだ!
2021/01/27(水) 16:58:07.84ID:yhGPUjKe
!!って基本的に使うべきでないんですかね
2021/01/27(水) 23:12:27.62ID:e4FHF1X1
>>538
STモナドの中に入れたら増やせそうな気がするが、取り出せなくなるけどいい?
2021/01/27(水) 23:15:32.07ID:9akTDBYB
>>545
簡易的なアサーションとして理解した上でNPEが出てほしい場合は使っていいよ
知らない間に大事な処理が実行されずスルーされたりするよりも、バグなのでとっとと例外を出して知らせてほしい場合とかね

https://kotlinlang.org/docs/reference/null-safety.html
> Thus, if you want an NPE, you can have it, but you have to ask for it explicitly, and it does not appear out of the blue.
2021/01/28(木) 09:16:46.22ID:zbveLxMQ
kotlinではnullチェックの代わりに?.を使うべきですか
2021/01/28(木) 09:54:30.26ID:fR55BjA1
nullチェックと一口に言ってもバリエーションを考えないとだめ
nullなら何もしない
nullなら空白で表示する
nullならハイフンで表示する
nullなら代替手段で値を取りに行く
nullならログを吐いてフォールバックする
nullならフェイルファストで例外を出す

?.は上記のうちの一部に最適ではあるものの、一部には役に立たない
実現したいことや状況に沿った措置が先にあり、それをコードで表現するために適した言語機能を選ぶという順序で考えるべき
2021/01/28(木) 12:36:53.48ID:Tpt+oTXI
nullなら割り込み禁止してその場で無限ループ
551デフォルトの名無しさん
垢版 |
2021/01/29(金) 15:21:19.10ID:8+3TBqwa
Kotlinって、SwiftやRuby以上にWindows切り捨て感があるのな
552デフォルトの名無しさん
垢版 |
2021/01/29(金) 16:40:33.72ID:VlQNfQH5
そう?
553デフォルトの名無しさん
垢版 |
2021/01/29(金) 22:17:24.41ID:8+3TBqwa
やっぱSwiftやRubyの方がひどいか・・・・
2021/01/30(土) 13:36:04.18ID:ODJUYA6t
>>551
なんでそう思うの?
普通にJVMだからむしろWindowsに優しい方の言語だと思うけど。
Rubyなんて酷いものだろう。。
2021/02/16(火) 22:13:20.25ID:tEVS/YKP
ねこ
2021/02/20(土) 08:00:32.70ID:KP5LXIwV
過疎なんか?
2021/02/21(日) 22:47:03.15ID:ZGRBNcjP
TornadoFXが終わってしまったっぽい。
2021/02/22(月) 03:31:15.20ID:X/Hrkxma
>>553
そもそもその2つもそれぞれMacとUNIX系のことしか考えてないってだけで切り捨て云々以前の話
2021/02/22(月) 07:50:49.54ID:BC6N5nYc
>>557
最初だけ話題になったけどすぐ話聞かなくなったもんな
2021/02/24(水) 06:00:45.34ID:OVfixnYa
>>559
TornadoFXで作ったソフトウェアがあるんだが、Java8の終了と共に沈めるしかないか…
561デフォルトの名無しさん
垢版 |
2021/02/24(水) 15:55:29.28ID:hU+TG0z/
これから覚えようと思ったのに・・・
2021/02/24(水) 20:06:34.71ID:1LsYaFKv
残念だね
2021/02/24(水) 20:12:49.29ID:aLOaaYJ0
ざんねんですね
2021/02/24(水) 21:56:39.02ID:OVfixnYa
なんでお葬式ムードなんだwwww
565デフォルトの名無しさん
垢版 |
2021/02/28(日) 08:57:09.46ID:y4wciZ8o
すでにピークは過ぎ去った。
2021/02/28(日) 10:57:59.59ID:K3NYU891
TornadoFXの話だろ。そりゃお葬式だわ。
2021/02/28(日) 10:58:46.89ID:K3NYU891
今KotlinでGUIアプリ作ろうと思ったら何がいいんだろうな
2021/02/28(日) 11:03:50.21ID:fCcI35LK
ピークちゃんかわいいやろ
569デフォルトの名無しさん
垢版 |
2021/02/28(日) 12:53:09.27ID:pfMKbdmi
>>566
Kotlin全体が、だろ。
570デフォルトの名無しさん
垢版 |
2021/02/28(日) 15:27:48.49ID:cJzzFvi8
>>567
何がどうなっても変わる事のがない最底辺の awt ではないか?
2021/03/01(月) 19:44:58.06ID:jvNCnqsx
awtの上でいろいろ動いてるんじゃなかったか
572デフォルトの名無しさん
垢版 |
2021/03/02(火) 02:32:19.48ID:g3RlIqNH
kotlin.awt というのを作ってみたらどうか?

無駄だな。
2021/03/05(金) 11:41:14.83ID:v+wrvR06
未だにkotlin nativeのサーバーサイドに可能性を感じてるんだがどう思う?
2021/03/05(金) 15:40:46.28ID:hI4Q3ELa
JVMを捨てて得られるメリットと比べて、Javaの資産を失うデメリットが多すぎかな
そのメリットの方を重視する人は普通はGoやRustを使うだろうし、あえてKotlin/Nativeを使うのはかなりニッチになるだろうから、JetBrainsもそこに注力しようと思わないし流行らない

まあでも、整備してくれるなら使ってあげるよw
2021/03/06(土) 07:42:11.87ID:Qr/DAxNU
>>573
nativeにしたところでパフォーマンスはせいぜい数倍にしか上がらない。
事業が順調に展開してパフォーマンスが求められるような幸運なケースでは、
分散やクラウドでスケールしないと早々に限界にぶち当たるのではと。
やったことないけどね。
576デフォルトの名無しさん
垢版 |
2021/03/06(土) 09:17:28.12ID:qinwWtrN
頼みのAndroidもFlutterにやられて終わりだな。
2021/03/06(土) 12:25:54.92ID:S7ZUFE2e
今そんなにflutter伸びてるの?
AndroidといえばKotlinの時代はおわり?
2021/03/06(土) 13:41:46.08ID:E/+DZq4q
クロスプラットフォームは総じて糞
2021/03/07(日) 07:42:06.57ID:A6qgIqC7
DartはChromeに組み込みが失敗して終わったと思ったのに、Flutterで巻き返してくるとは。
先日Flutter 2.0になりWebもデスクトップもカバーして、
クロスプラットフォームではReact Nativeを抜いてトップになったらしいけど、
モバイル全体で見た時のシェアはどうなんだろう。

>>578
そういえばこのスレでもXamarinの名前をすっかり見かけなくなった。
2021/03/07(日) 10:05:36.59ID:wAK4v6A6
xamarinは.NETに統合されるから単独の話題には
もうならないのではなかろうか
2021/03/08(月) 22:27:58.05ID:q6+mJ7oA
Cocoaの件で悪い意味で話題の的になると思ってたが
2021/03/10(水) 09:14:01.41ID:uS0cxZyu
Googleと取り組むオンライン施策についての件名でGoogleからメールがきたんだが趣味アプリなのに返事しちゃっていいの?
2021/03/11(木) 06:21:17.00ID:a1O7PjBL
>>582
詐欺メールでなければ。
内容がわからないけど、趣味でやっているなら解約時に違約金を取られないか注意するくらいかな。
2021/03/12(金) 11:34:03.78ID:kAI5XbyW
>>576
kotlin nativeはkotlin jvmより遅いよ
起動とメモリ使用量は有利だけど
2021/03/12(金) 11:41:14.42ID:kAI5XbyW
>>575
jetbrains視点で、vs flutterよりvs golangの方がマシな気がするんやが。
rustは競合しないから置いとくとして、
golangより書きやすいのは間違いないんやし。
2021/03/12(金) 13:35:25.78ID:UgndYbA/
Googleの女性担当者とビデオ通話で内容をご案内とか書いてあるんだけど趣味アプリなのにいいの?
2021/03/12(金) 19:38:55.82ID:rO8VAFcZ
>>586
守秘義務とかがないならもう少し詳しく説明してもらえないと分からない。
内容をご案内、も何の内容を誰(Google?あなた?ユーザー?)に案内なのかさっぱりだし。
>>584,>>585
アンカ逆かな
2021/03/14(日) 16:14:48.16ID:ITpb+jkv
サーバーサイドのJVMって別にパフォーマンス悪くないからなー
nativeにするメリットがあまりない
2021/03/14(日) 17:26:30.65ID:dZcEVD5V
YMobileのCMに出てくる芦田愛菜ちゃんはかわいいと思う
2021/03/15(月) 14:33:02.39ID:h4DpjXex
nativeにするのは
javaの遺産を継承したくないからだと思われる
2021/03/15(月) 23:06:23.55ID:p+TDCzdA
>>580
継承したくないなら使わなければ済むと思うのですが。
2021/03/16(火) 11:55:42.45ID:H0s8r45D
nativeにしたいのは起動時間短縮(aws lambda利用とか)と、jvmレスによるメモリ軽減(kubeで複数pod利用とか)狙い
goと被ってるから倒したい
2021/03/18(木) 12:54:36.74ID:WX8jlJaB
Kotlinでそれをやりたい人は少数派だろうし、倒さずに住み分けするんじゃだめなの
2021/03/23(火) 09:25:28.89ID:zaPbuDkV
ヤらなきゃヤられるんだよ
2021/04/06(火) 16:58:25.74ID:hd98bw+B
java勝ったからもうお前に用はない

  ○ ←google
 く|)へ
  〉 ヾ○シ ←Kotlin
 ̄ ̄7 ヘ/
  /  ノ
  |
 /
`|
2021/04/06(火) 17:23:29.60ID:a1s8u+O4
いやkotlinはjavaのラッパーでしかないだろ
2021/04/06(火) 18:48:08.81ID:RsrzZqy7
パクりまくりおkで逆にJava終了ってマジ!?
2021/04/06(火) 18:53:33.55ID:a1s8u+O4
むしろKotlinの天下javaに取って代わるわ
2021/04/07(水) 16:37:16.80ID:zog9bUla
生き残るのはJava8までよ
600デフォルトの名無しさん
垢版 |
2021/04/15(木) 03:49:33.54ID:o1THc+2j
そういやOracleとGoogleで争ってたAndroidのJavaの件はGoogle勝ったんだってな。
2021/04/15(木) 12:26:42.63ID:wukWzou0
そういやって、まさにその話をしてたのよ
2021/04/28(水) 20:51:31.93ID:cErE5E3t
そういやOracleとGoogleで争ってたAndroidのJavaの件はGoogle勝ったんだってな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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