JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
探検
Kotlin 5
■ このスレッドは過去ログ倉庫に格納されています
2018/12/08(土) 20:29:41.41ID:oXOQORcd
287デフォルトの名無しさん
2019/02/15(金) 10:48:24.63ID:szDoWtiX あ、はい
288デフォルトの名無しさん
2019/02/15(金) 10:54:34.88ID:tar5L0r6 inline class = ユーザー定義の値型 = C#のstruct
そして最適化が十分ならそれらが必要無いことをRustとGoが証明してる
ヒープかスタックかは自動で判断される
そして最適化が十分ならそれらが必要無いことをRustとGoが証明してる
ヒープかスタックかは自動で判断される
289デフォルトの名無しさん
2019/02/15(金) 10:56:38.52ID:PR4djPv7 特定のVM前提で設計されて他へ移植されて成功した言語の例としてはAndroidのJava/KotlinやUnityのC#、Node.jsのJSあたりが該当すると言えなくもないけど、
それらは言語の移植ではなくVMごと移植だからなあ
基本的にVM言語の他への移植は成功しないよ
それらは言語の移植ではなくVMごと移植だからなあ
基本的にVM言語の他への移植は成功しないよ
290デフォルトの名無しさん
2019/02/15(金) 11:07:58.47ID:tar5L0r6 AndroidやC#のいくつかのターゲットはAOTで
それらも「VMごと」に含むなら
LLVMを使うC++(Clang)も同じ扱いになる
それらも「VMごと」に含むなら
LLVMを使うC++(Clang)も同じ扱いになる
291デフォルトの名無しさん
2019/02/15(金) 15:42:23.69ID:FI28dGgE 最近、kotlin触ってるけど、C#より学習コストが高いです
それで、C#erがkotlinに切り替える際に、意識すべき点って何かありますか?
それで、C#erがkotlinに切り替える際に、意識すべき点って何かありますか?
292デフォルトの名無しさん
2019/02/15(金) 16:15:05.26ID:PR4djPv7 >>291
Javaの制限を理解すること
JVMは.NETのCLRに比べて機能的にはずっとショボくて、その制限に由来する奇妙な仕様がKotlinには数多く存在する
Javaに慣れてないとそのあたりは直感的に理解しづらい
Javaの制限を理解すること
JVMは.NETのCLRに比べて機能的にはずっとショボくて、その制限に由来する奇妙な仕様がKotlinには数多く存在する
Javaに慣れてないとそのあたりは直感的に理解しづらい
293デフォルトの名無しさん
2019/02/15(金) 17:24:02.62ID:Hx3jejna >>292さんの言ってる「Javaの制限」て例えばどんなこと?
294デフォルトの名無しさん
2019/02/15(金) 17:29:59.00ID:tar5L0r6 >>291
プログラム言語全般に言えることだけど
各構文を概要程度でも良いので、まずは一通り知ること
C#知ってて引っ掛かりそうな箇所として思いついたのは
・最後のパラメータがラムダの場合は丸括弧の後に書ける
他に引数が無い場合は丸括弧も省略出来る
(GroovyやSwiftのTrailing Closureと同じ)
・レシーバ付きラムダ
・inlineラムダ
・returnはfunから抜けるもので、ラムダから抜けるものではない
・IterableとSequenceは遅延評価
・コンパイルでジェネリクス情報は消える
・suspendは同期(await)が基本動作
プログラム言語全般に言えることだけど
各構文を概要程度でも良いので、まずは一通り知ること
C#知ってて引っ掛かりそうな箇所として思いついたのは
・最後のパラメータがラムダの場合は丸括弧の後に書ける
他に引数が無い場合は丸括弧も省略出来る
(GroovyやSwiftのTrailing Closureと同じ)
・レシーバ付きラムダ
・inlineラムダ
・returnはfunから抜けるもので、ラムダから抜けるものではない
・IterableとSequenceは遅延評価
・コンパイルでジェネリクス情報は消える
・suspendは同期(await)が基本動作
295デフォルトの名無しさん
2019/02/15(金) 17:31:30.02ID:tar5L0r6296デフォルトの名無しさん
2019/02/15(金) 22:07:22.01ID:KHCIiBIM kotlin勉強中なんだけど、結局のところjetbrainsがscala推さずにkotlin出したのは何でなの?
商業的に旨みがあるから?それともbetter javaとしてのscalaに見切りをつけたから?それとも?
商業的に旨みがあるから?それともbetter javaとしてのscalaに見切りをつけたから?それとも?
297デフォルトの名無しさん
2019/02/15(金) 22:33:17.97ID:tar5L0r6 コンセプトの違い
298デフォルトの名無しさん
2019/02/15(金) 23:10:54.49ID:9S5XTVoX >>296
自分でScalaやってみればすぐにわかるよ
まともな感性があれば、あんなものが普及するわけがないことは明らかだった
JetBrainsもIDEを作る会社として自由にできる言語が一つは欲しかったというのはもちろんあっただろうけどね
自分でScalaやってみればすぐにわかるよ
まともな感性があれば、あんなものが普及するわけがないことは明らかだった
JetBrainsもIDEを作る会社として自由にできる言語が一つは欲しかったというのはもちろんあっただろうけどね
299デフォルトの名無しさん
2019/02/15(金) 23:25:58.35ID:KHCIiBIM >>296
なるほど。Scalaのこれ以上の普及は難しいという判断があった(だろう)ってことなら納得。
なるほど。Scalaのこれ以上の普及は難しいという判断があった(だろう)ってことなら納得。
300デフォルトの名無しさん
2019/02/15(金) 23:41:27.98ID:KHCIiBIM まちがえた。上は >>298
雑念を捨ててkotlin邁進してきます
雑念を捨ててkotlin邁進してきます
301デフォルトの名無しさん
2019/02/16(土) 15:17:06.30ID:lTjIe/CZ Scalaは言語マニアのオナニー言語だよなあ
302デフォルトの名無しさん
2019/02/16(土) 17:00:29.98ID:odkD9xpX なんだかんだでscalaは採用企業多いけどね
kotlinもtwitterとかpaypalみたいな大手で使ってくれると宣伝になるんだけど
kotlinもtwitterとかpaypalみたいな大手で使ってくれると宣伝になるんだけど
303デフォルトの名無しさん
2019/02/16(土) 17:31:16.36ID:W7DuQqzW 日本のYahooがKotlin採用したくらいではさざなみさえ立たないか
304デフォルトの名無しさん
2019/02/17(日) 08:06:13.22ID:8BWCGdz7 Scalaの方が出たのが早かったし意識高い系(笑)が挙って使ったから
でもそれを維持出来る新人たちが居ないのが現状
Scalaは端的に複雑で難解な部分が多い
2018年後半以降Scalaの記事殆ど見かけないやろ?
コップ本(笑)
でもそれを維持出来る新人たちが居ないのが現状
Scalaは端的に複雑で難解な部分が多い
2018年後半以降Scalaの記事殆ど見かけないやろ?
コップ本(笑)
305デフォルトの名無しさん
2019/02/17(日) 11:12:07.88ID:IdBTBZJc Androidの公式言語がScalaになる世界線もあり得たと思うけど、そうならなかったってことはつまりそういうこと
306デフォルトの名無しさん
2019/02/17(日) 11:17:52.27ID:IdBTBZJc 一年くらいScalaで仕事してたしまあ慣れればどうってことはないと思うけど、ScalaとKotlinで選べるとしたらよほどの変人以外はKotlin選ぶと思うわw
307デフォルトの名無しさん
2019/02/17(日) 11:30:47.79ID:OQFPUwNT ScalaはHaskellを意識しすぎ
簡潔に書きたいだけならKotlinかClosureの方がいい
簡潔に書きたいだけならKotlinかClosureの方がいい
308デフォルトの名無しさん
2019/02/17(日) 11:57:32.09ID:nzXhLQND Scalaのコンセプトは、スケーラビリティの理論実証
オブジェクト指向と関数型の統合によりスケーラビリティが実現すると考え
小規模から大規模まで同じ書き方/考え方で記述出来るように設計されている
出自はコンピュータサイエンスの学者
Kotlinのコンセプトは、より良い産業向け言語
Javaからの移行や相互運用、コンパイル速度、使い勝手について
「仕事の道具」であることを意識して設計されている
出自はIDE製品を提供する企業
オブジェクト指向と関数型の統合によりスケーラビリティが実現すると考え
小規模から大規模まで同じ書き方/考え方で記述出来るように設計されている
出自はコンピュータサイエンスの学者
Kotlinのコンセプトは、より良い産業向け言語
Javaからの移行や相互運用、コンパイル速度、使い勝手について
「仕事の道具」であることを意識して設計されている
出自はIDE製品を提供する企業
309デフォルトの名無しさん
2019/02/17(日) 12:47:22.79ID:7MWZQWrl どっちも我田引水なだけやん
310デフォルトの名無しさん
2019/02/17(日) 13:01:53.97ID:nzXhLQND 設計思想と既存資産があるから多様に派生し人が集まる
C, C++, Objective-Cが合流しないのも同様
それを我田引水と評することに何の意味もない
C, C++, Objective-Cが合流しないのも同様
それを我田引水と評することに何の意味もない
311デフォルトの名無しさん
2019/02/17(日) 15:40:49.55ID:1RbyA1NJ >>310
クスクス
クスクス
312デフォルトの名無しさん
2019/02/17(日) 15:53:56.04ID:tF7RiGiR scalaでAndroidのプラグインとかあった気がする
我田引水ってなんか意味わからんな
我田引水ってなんか意味わからんな
313デフォルトの名無しさん
2019/02/17(日) 23:16:27.59ID:ek0K0t7B314デフォルトの名無しさん
2019/02/18(月) 02:04:27.28ID:XPBhJDxI 我田引水ってのは共用物について不正に占有したり自らの便宜を図ったりするような場合を言う
自己アピールや競争を含めた利己的な行動すべてを我田引水と揶揄するのは農耕民族的な発想が過ぎる
そういうのは道徳というより村八分や出る杭が打たれるのを恐れる面が強くイノベーションの足枷
自己アピールや競争を含めた利己的な行動すべてを我田引水と揶揄するのは農耕民族的な発想が過ぎる
そういうのは道徳というより村八分や出る杭が打たれるのを恐れる面が強くイノベーションの足枷
315デフォルトの名無しさん
2019/02/18(月) 11:11:01.50ID:+13B6eaL もはや何のスレだか分からない
316デフォルトの名無しさん
2019/02/18(月) 13:20:37.82ID:cZFby2gr 道徳説教スレ
317デフォルトの名無しさん
2019/02/18(月) 13:34:09.52ID:trvxFZJG 我田引水スレ
318デフォルトの名無しさん
2019/02/18(月) 19:19:37.69ID:I6FKQlBO 後ろ盾がjetbrainsっていうのはどうなんやろ。
大手と比べてどんなメリットデメリットあると思う?
大手と比べてどんなメリットデメリットあると思う?
319デフォルトの名無しさん
2019/02/18(月) 19:29:55.81ID:Sk2Bqw0/ てか、我田引水ってどういう意味だっけwwww
320デフォルトの名無しさん
2019/02/18(月) 19:50:06.12ID:TrdfW/q6 >>318
googleと仲いいしintellijシリーズが売れなくなるとも思えんし安泰なんじゃ?
googleと仲いいしintellijシリーズが売れなくなるとも思えんし安泰なんじゃ?
321デフォルトの名無しさん
2019/02/18(月) 20:44:26.76ID:bWM4TeHv スカラ信者がまた荒らしてるな
322デフォルトの名無しさん
2019/02/18(月) 21:57:58.91ID:EXht3ErA >>318
大手と比べるとメリットはない。後ろ盾のない言語よりはいい。
IDEの開発会社という意味では、言語の普及がIDEの売上に直結する可能性があるので
Oracleみたいに独立不採算だからマネタイズに走るという思考にはなりにくいが、
絶対的なものではない。
大手と比べるとメリットはない。後ろ盾のない言語よりはいい。
IDEの開発会社という意味では、言語の普及がIDEの売上に直結する可能性があるので
Oracleみたいに独立不採算だからマネタイズに走るという思考にはなりにくいが、
絶対的なものではない。
323デフォルトの名無しさん
2019/02/18(月) 22:33:30.93ID:nEhvYQ88 IDEの開発会社であるが故のリスクもあるけどね
VSCodeのような強力な他の開発ツールがKotlinサポートにおいてIntelliJを超えてしまってユーザーが流れた場合、
JetBrainsにとってKotlinの開発を続けることにもはや意味がなくなってしまう
VSCodeのような強力な他の開発ツールがKotlinサポートにおいてIntelliJを超えてしまってユーザーが流れた場合、
JetBrainsにとってKotlinの開発を続けることにもはや意味がなくなってしまう
324デフォルトの名無しさん
2019/02/18(月) 22:58:18.56ID:/oirkxE3 後ろ盾最強はやっぱrust?
325デフォルトの名無しさん
2019/02/18(月) 23:02:22.94ID:3dpq5+94 Goでぇす!
326デフォルトの名無しさん
2019/02/19(火) 08:14:46.86ID:cAOiK8uf 後ろ盾の強さでいったらGoだべ
あれだけの巨大企業がついてる上に、開発も独裁せずに異常なまでにオープンであることを重視してるし
あれだけの巨大企業がついてる上に、開発も独裁せずに異常なまでにオープンであることを重視してるし
327デフォルトの名無しさん
2019/02/19(火) 09:12:17.39ID:D8b3v+Fo328デフォルトの名無しさん
2019/02/19(火) 09:33:24.18ID:cAOiK8uf329デフォルトの名無しさん
2019/02/19(火) 13:20:28.53ID:VQ802aqj goは好きじゃないが>>326の言うことには同意
でもDartちゃんは駄目だから早く眠らせてあげて…
でもDartちゃんは駄目だから早く眠らせてあげて…
330デフォルトの名無しさん
2019/02/19(火) 14:47:06.45ID:dYxLB9sm FlutterがDartじゃなければ一気に覇権を取るまでありえただろうにな
331デフォルトの名無しさん
2019/02/20(水) 14:22:13.38ID:v2qgHXVs Android次期OSの開発言語がDartになるみたいな話どうなったん
332デフォルトの名無しさん
2019/02/20(水) 15:43:28.44ID:YlCEZG7R 夢のOSなので夢で終わる
333デフォルトの名無しさん
2019/02/20(水) 15:54:05.41ID:agArr1lp ダー子
334デフォルトの名無しさん
2019/02/20(水) 16:09:47.41ID:xuurx1V0335デフォルトの名無しさん
2019/02/20(水) 17:27:44.53ID:9tgV50SM Dream → Nightmare
336デフォルトの名無しさん
2019/02/20(水) 19:05:59.81ID:v7iPz90J 夢は見るもの
目標は叶えるもの
目標は叶えるもの
337デフォルトの名無しさん
2019/02/20(水) 19:45:33.26ID:TCqLAjvR 夢を見る島
338デフォルトの名無しさん
2019/02/20(水) 21:47:37.37ID:sBZRwN3G339デフォルトの名無しさん
2019/02/22(金) 04:03:22.89ID:DtR1+6r8 >>334
まじかよダートいらねーじゃん
まじかよダートいらねーじゃん
340デフォルトの名無しさん
2019/02/23(土) 12:08:36.03ID:9pS68leH Котлин
341デフォルトの名無しさん
2019/02/24(日) 12:59:23.23ID:pmK9w2Lp ランキング画面を作っていてRecyclerViewの項目のソートをしたいんですが、
Cellectionをお気に入り数の降順でソートした上で、
タイトルとサブタイトルの昇順にソートするにはどうしたらいいですか
以下でお気に入り数の降順でソートするところまではできたんですが。
RankingDatas.sortedByDescending { it.bookMarkCount }
Cellectionをお気に入り数の降順でソートした上で、
タイトルとサブタイトルの昇順にソートするにはどうしたらいいですか
以下でお気に入り数の降順でソートするところまではできたんですが。
RankingDatas.sortedByDescending { it.bookMarkCount }
342デフォルトの名無しさん
2019/02/24(日) 17:16:45.57ID:DytDvOjA 俺だったらデータを抜いてくる時点でソートをかけて抜いてくる。
343デフォルトの名無しさん
2019/02/24(日) 17:28:12.24ID:pmK9w2Lp APIレスポンスはそうして返してるんですが、
ローカルでお気に入りオンオフしてランキング順位が変わった場合に
再度APIを叩いてデータを取り直すのも微妙なので
その場合はローカルでソートして
順番を入れ替えたいという感じです
ローカルでお気に入りオンオフしてランキング順位が変わった場合に
再度APIを叩いてデータを取り直すのも微妙なので
その場合はローカルでソートして
順番を入れ替えたいという感じです
344デフォルトの名無しさん
2019/02/24(日) 18:25:01.14ID:nlMNXQkf ドキュメントにこう書いてあるからascendingとdescendingを順次呼び出せばいいんじゃない?
The sort is stable. It means that equal elements preserve their order relative to each other after sorting.
呼び出す順序はソート優先順位の逆順で
The sort is stable. It means that equal elements preserve their order relative to each other after sorting.
呼び出す順序はソート優先順位の逆順で
345デフォルトの名無しさん
2019/02/24(日) 20:05:27.33ID:pmK9w2Lp rankingDatas.sortedByDescending { it.bookMarkCount }.sortedBy { it.title }.sortedBy { it.subTitle }
やってみましたが、途中の結果は捨てられて単に subTitle の降順になるようです
やってみましたが、途中の結果は捨てられて単に subTitle の降順になるようです
346デフォルトの名無しさん
2019/02/24(日) 20:26:13.24ID:pmK9w2Lp 昇順か
347デフォルトの名無しさん
2019/02/24(日) 21:01:47.88ID:DSwgvg4z sortedWithつかえ
348デフォルトの名無しさん
2019/02/24(日) 21:07:06.34ID:pmK9w2Lp できましたありがとうございました
349デフォルトの名無しさん
2019/02/25(月) 01:07:00.43ID:EPSsIluE 呼び出す順序はソート優先順位の逆順でと言ったのに伝わらなかったか
350デフォルトの名無しさん
2019/02/25(月) 05:33:03.93ID:D5d9E5fI 「kotlin sort multiple fields」で検索!
351デフォルトの名無しさん
2019/02/26(火) 03:00:37.89ID:lsok3PaS こういうことしたかったのか?
https://code.i-harness.com/ja/q/2388797
https://code.i-harness.com/ja/q/2388797
352デフォルトの名無しさん
2019/02/26(火) 06:27:00.41ID:oQJIDyJZ 久しぶりに触ったらcoroutineがだいぶ変わってるらしくて以前からとりあえず動くけどよく分かってない状態だったのにもう全然分からないよ……(´・ω・`)
353デフォルトの名無しさん
2019/02/26(火) 07:07:49.29ID:UAPWfCGq >>352
とりあえず前知識として「コールバック地獄」について知っておくといいかも
とりあえず前知識として「コールバック地獄」について知っておくといいかも
354デフォルトの名無しさん
2019/02/26(火) 08:39:12.02ID:5k0N70Wq coroutine登場人物多すぎ
355デフォルトの名無しさん
2019/02/26(火) 09:55:03.32ID:E0EMtjG2 え?子ルーチンそんなに変わったの?
356デフォルトの名無しさん
2019/02/26(火) 10:37:15.60ID:UAPWfCGq experimental中は色々変わったけど正式版以降の使い方は基本的に変わってないよ
https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md
https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md
357デフォルトの名無しさん
2019/02/26(火) 12:06:54.02ID:5MxkS3P7 >>351
のリンク先で、数値なら、- で降順にできるのか?
list.sortedWith(compareBy({ -it.age }, { it.name }, { it.address }))
Ruby なら、
arr2 = arr.sort_by { |a| [ -a[:score], a[:room] ] }
のリンク先で、数値なら、- で降順にできるのか?
list.sortedWith(compareBy({ -it.age }, { it.name }, { it.address }))
Ruby なら、
arr2 = arr.sort_by { |a| [ -a[:score], a[:room] ] }
358デフォルトの名無しさん
2019/02/26(火) 18:17:15.84ID:k06atLuF >>357
できる。
できる。
359デフォルトの名無しさん
2019/02/28(木) 03:26:51.88ID:oRFlldUh ま、しかし、複数項目で昇順降順が混在する場合は自分で Comparator 作っちゃった方が楽かもね。
360デフォルトの名無しさん
2019/02/28(木) 07:06:25.14ID:Lh1ejLNL いやいや rankingDatas.sortedBy { it.subTitle }.sortedBy { it.title }.sortedByDescending { it.bookMarkCount } でいいじゃん
361デフォルトの名無しさん
2019/02/28(木) 09:12:21.78ID:sPMvbV7g 直感的でない
362デフォルトの名無しさん
2019/02/28(木) 09:15:13.48ID:UGZ/YaG8 >>360
処理時間3倍かかるよそれ
処理時間3倍かかるよそれ
363デフォルトの名無しさん
2019/02/28(木) 10:37:24.91ID:o8LdAn98364デフォルトの名無しさん
2019/02/28(木) 13:05:23.62ID:oAFMMcaR >>360
それって2番目の並べ替えで1番目の並べ替えの順序が変わらないことは保証されてるの?
それって2番目の並べ替えで1番目の並べ替えの順序が変わらないことは保証されてるの?
365デフォルトの名無しさん
2019/02/28(木) 13:16:03.81ID:TwQuwGRl stable sortだから保証されてる
366デフォルトの名無しさん
2019/02/28(木) 15:53:56.89ID:sPMvbV7g mutableLivedataを外部に公開したら良くないってことで
別途livedataを作ってそいつに参照を持たせて
外部にはlivedataだけ公開するっていうのを
全部のmutableLivedataに対して行うの面倒臭いんですが
なにかいい方法ないですか
別途livedataを作ってそいつに参照を持たせて
外部にはlivedataだけ公開するっていうのを
全部のmutableLivedataに対して行うの面倒臭いんですが
なにかいい方法ないですか
367デフォルトの名無しさん
2019/02/28(木) 19:05:52.26ID:TwQuwGRl よく知らないけどmutableLivedataをコンストラクタで貰って
それを元にlivedataを作って両方保持するクラスでも作って包めばいいんじゃないの
それを元にlivedataを作って両方保持するクラスでも作って包めばいいんじゃないの
368デフォルトの名無しさん
2019/03/01(金) 01:02:08.44ID:8x0yRf06 それで何か解決するんですかね
結局view側からmutableLivedataに
アクセスできるんじゃないですかね
結局view側からmutableLivedataに
アクセスできるんじゃないですかね
369デフォルトの名無しさん
2019/03/01(金) 06:35:34.41ID:eJTnddJA 本当にやり方が思いつかないならもうちょっと経験値の高い先輩なりに相談してみよう
370デフォルトの名無しさん
2019/03/01(金) 08:39:12.55ID:8x0yRf06 分からないならレスしないでください。うざいだけです
371デフォルトの名無しさん
2019/03/01(金) 09:24:26.88ID:ajbNVKsu 動かしてないけどこんな感じ
import android.arch.lifecycle.*
import kotlin.reflect.KProperty
//保持用
fun <T> unmodifiableLiveData(d:LiveData<T>): LiveData<T> = Transformations.map(d){it}
class MutLiveWrap<T>(val lv:MutableLiveData<T>) {
val readonlyLv = unmodifiableLiveData(lv)
operator fun getValue(thisRef: Any?, property: KProperty<*>) = readonlyLv
}
val <T> MutableLiveData<T>.wrap get() = MutLiveWrap<T>(this)
//使用
class Test {
private val aWr = MutableLiveData<Int>().wrap
val a by aWr
fun f(){
val mutLv: MutableLiveData<Int> = this.aWr.lv
val roLv : LiveData<Int> = this.a
}
}
import android.arch.lifecycle.*
import kotlin.reflect.KProperty
//保持用
fun <T> unmodifiableLiveData(d:LiveData<T>): LiveData<T> = Transformations.map(d){it}
class MutLiveWrap<T>(val lv:MutableLiveData<T>) {
val readonlyLv = unmodifiableLiveData(lv)
operator fun getValue(thisRef: Any?, property: KProperty<*>) = readonlyLv
}
val <T> MutableLiveData<T>.wrap get() = MutLiveWrap<T>(this)
//使用
class Test {
private val aWr = MutableLiveData<Int>().wrap
val a by aWr
fun f(){
val mutLv: MutableLiveData<Int> = this.aWr.lv
val roLv : LiveData<Int> = this.a
}
}
372デフォルトの名無しさん
2019/03/01(金) 11:13:31.72ID:PhmT31GH >>370
分かりません。
分かりません。
373デフォルトの名無しさん
2019/03/01(金) 11:44:05.14ID:AdJjcFYH >>370
技術力がないだけじゃなくて人間としても終わってるのな
技術力がないだけじゃなくて人間としても終わってるのな
374デフォルトの名無しさん
2019/03/01(金) 12:41:01.41ID:yZJ4Zkhu 荒らしに返事するな!
そいつは前からいる、荒らしだろ。
相手をすると、この板に居つくだけ!
そいつは前からいる、荒らしだろ。
相手をすると、この板に居つくだけ!
375デフォルトの名無しさん
2019/03/01(金) 12:57:49.73ID:PhmT31GH ま、しかし、このスレの場合は日頃は過疎ってるのでたまに荒しが来てくれた方がスレが活性化して落ちる心配がなくなるなw
376デフォルトの名無しさん
2019/03/01(金) 16:06:36.33ID:XD1TRf4c developer.android.comの最近のページはコードサンプルがKotlinとJava両方載ってるんだね
タブで切り替えるんだけど最初に表示されてるのはKotlin
タブで切り替えるんだけど最初に表示されてるのはKotlin
377デフォルトの名無しさん
2019/03/01(金) 16:54:26.44ID:ae30enpy 俺も動かしてないけどつくってみた
import androidx.annotation.MainThread
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
private class ReadOnlyLiveData<T>(private val liveData: LiveData<T>) : LiveData<T>() {
override fun setValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
override fun postValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
@MainThread override fun observe(owner: LifecycleOwner, observer: Observer<in T>) { liveData.observe(owner, observer) }
@MainThread override fun observeForever(observer: Observer<in T>) { liveData.observeForever(observer) }
@MainThread override fun removeObserver(observer: Observer<in T>) { liveData.removeObserver(observer) }
@MainThread override fun removeObservers(owner: LifecycleOwner) { liveData.removeObservers(owner) }
override fun getValue(): T? = liveData.value
@SuppressWarnings("WeakerAccess") override fun hasObservers(): Boolean = liveData.hasObservers()
@SuppressWarnings("WeakerAccess") override fun hasActiveObservers(): Boolean = liveData.hasActiveObservers()
}
fun <T> LiveData<T>.readOnly(): LiveData<T> {
if (this is ReadOnlyLiveData<T>) return this // もうすでにリードオンリー
return ReadOnlyLiveData(this)
}
import androidx.annotation.MainThread
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
private class ReadOnlyLiveData<T>(private val liveData: LiveData<T>) : LiveData<T>() {
override fun setValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
override fun postValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
@MainThread override fun observe(owner: LifecycleOwner, observer: Observer<in T>) { liveData.observe(owner, observer) }
@MainThread override fun observeForever(observer: Observer<in T>) { liveData.observeForever(observer) }
@MainThread override fun removeObserver(observer: Observer<in T>) { liveData.removeObserver(observer) }
@MainThread override fun removeObservers(owner: LifecycleOwner) { liveData.removeObservers(owner) }
override fun getValue(): T? = liveData.value
@SuppressWarnings("WeakerAccess") override fun hasObservers(): Boolean = liveData.hasObservers()
@SuppressWarnings("WeakerAccess") override fun hasActiveObservers(): Boolean = liveData.hasActiveObservers()
}
fun <T> LiveData<T>.readOnly(): LiveData<T> {
if (this is ReadOnlyLiveData<T>) return this // もうすでにリードオンリー
return ReadOnlyLiveData(this)
}
378デフォルトの名無しさん
2019/03/02(土) 06:14:14.54ID:qFBH5IQH >>357
降順と昇順が混在する場合は compareBy または compareByDescending で Comparator 作って
それに対して thenBy または thenByDescending で追加させて行く方が楽だし速いと思う。
降順と昇順が混在する場合は compareBy または compareByDescending で Comparator 作って
それに対して thenBy または thenByDescending で追加させて行く方が楽だし速いと思う。
379デフォルトの名無しさん
2019/03/04(月) 16:04:14.52ID:/4qbaGVQ AnkoでBottom Sheetって使えますか?
380デフォルトの名無しさん
2019/03/08(金) 09:22:28.79ID:Yj0eRJ2i なんか面白い話題ないんかな。。
381デフォルトの名無しさん
2019/03/08(金) 10:46:41.80ID:pv8HlopZ 君が面白くなりなさい。
382デフォルトの名無しさん
2019/03/08(金) 13:24:56.87ID:AzqZJLRD springがフルkotlinになるのはいつ?
383デフォルトの名無しさん
2019/03/08(金) 18:01:21.77ID:rmua+rZ/ Exposed1.0が出るのはいつ?
384デフォルトの名無しさん
2019/03/10(日) 12:52:23.09ID:t+kr7Jdy sequenceってジェネレーターみたいなもの?
385デフォルトの名無しさん
2019/03/10(日) 13:42:04.30ID:56gRJqyl >>384
SequenceはIterableとほぼ同じ
違いは
Sequence: 遅延評価する (なのでジェネレーターも含む)
Iterable: 基本的には遅延評価でない (通常、実体はコレクション)
拡張関数も別れていて、例えば
Sequenceのmap は遅延評価するSequenceを返す
Iterableのmap はその場で全要素を処理してListを返す
SequenceはIterableとほぼ同じ
違いは
Sequence: 遅延評価する (なのでジェネレーターも含む)
Iterable: 基本的には遅延評価でない (通常、実体はコレクション)
拡張関数も別れていて、例えば
Sequenceのmap は遅延評価するSequenceを返す
Iterableのmap はその場で全要素を処理してListを返す
386デフォルトの名無しさん
2019/03/11(月) 00:27:22.19ID:+Nlo5Elt ずばり説明が書いてあるページを発見した。
KotlinのListとSequenceって何が違うの?
https://qiita.com/KirariGlock/items/9aa251a44c11900c8b5f
KotlinのListとSequenceって何が違うの?
https://qiita.com/KirariGlock/items/9aa251a44c11900c8b5f
387デフォルトの名無しさん
2019/03/11(月) 07:22:41.11ID:0boP2QX3 うんこは最後に出す方法
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「脅迫だ」国分太一に同情論 音声データ削除要求など日テレの対応を疑問視する声ネットに噴出「それこそコンプラ違反では」★2 [muffin★]
- 【国際法を無視】日本での「中華人民共和国に台湾問題を論じる資格なし」との声に 中国外交部が厳しく反論… ★2 [BFU★]
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★3 [ごまカンパチ★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★3 [おっさん友の会★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★5 [Ailuropoda melanoleuca★]
- 【芸能】日本のファンも悲鳴、香港トップスターが来日コンサートを突如中止 「早く政府間で解決を」運営会社の切実な訴え [冬月記者★]
- まったりまったりおじゃる丸待機スレ🏡
- ワイ「え!?まだポケモンやってんの?ww」 同僚「うん、子供とやるよ」
- 高市応援団「都合よく解釈するな」「撤回すると言ってない」「中国と断交」「撤回する必要ない」「答弁変わってない」「武力行使しろ」 [931948549]
- ま負けガイジが俺の言葉で動揺しているw
- ヤンジャン新人漫画大賞、入賞作品のAI絵疑惑で大荒れ😄😄😄 高市早苗要素あり [175344491]
- なろう原作『童貞のひとりごと』にありがちなこと
