JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
Kotlin 5
https://mevius.5ch.net/test/read.cgi/tech/1544268581/
探検
Kotlin 6
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/06/22(土) 15:59:57.23ID:zj+KJbMh452デフォルトの名無しさん
2019/11/21(木) 20:29:13.59ID:ikLBAUPH453デフォルトの名無しさん
2019/11/21(木) 22:54:14.17ID:Vn+a4ljF あるデータが有限の数値をとる場合と
値なしの特殊な状態をとる場合があるとする
その厄介さってのは多くの場合、処理の場合分けが必要ってところにある
ヒトがそういう分岐を書き忘れがちなのはご存じの通り
その結果もあって多くのプログラマはNPE恐怖症になったが、NPEを回避することが目的になっても意味がない
NullObjectの多態性やアルゴリズムの妙で分岐を潰せるならベスト
だがそうでない場合、むしろ分岐を書き忘れたとき、下手なNullObjectはフェイルファストのメリットを失うことがある
値なしの特殊な状態をとる場合があるとする
その厄介さってのは多くの場合、処理の場合分けが必要ってところにある
ヒトがそういう分岐を書き忘れがちなのはご存じの通り
その結果もあって多くのプログラマはNPE恐怖症になったが、NPEを回避することが目的になっても意味がない
NullObjectの多態性やアルゴリズムの妙で分岐を潰せるならベスト
だがそうでない場合、むしろ分岐を書き忘れたとき、下手なNullObjectはフェイルファストのメリットを失うことがある
454デフォルトの名無しさん
2019/11/22(金) 08:14:50.32ID:GTCFu0T7 nullセーフな言語におけるNullable型の素晴らしい点は
そのままではメソッドを呼び出すことができず
特殊値に対し場合分けの判断が必要ではないかとヒトに思い出させてくれること
不適切な!!はこれを台無しにする
不適切なNullObjectも同じで、より厄介なバグ隠蔽をもたらす
そのままではメソッドを呼び出すことができず
特殊値に対し場合分けの判断が必要ではないかとヒトに思い出させてくれること
不適切な!!はこれを台無しにする
不適切なNullObjectも同じで、より厄介なバグ隠蔽をもたらす
455デフォルトの名無しさん
2019/11/22(金) 09:18:52.84ID:hf/6/1tn456デフォルトの名無しさん
2019/11/22(金) 10:51:25.32ID:+tlCvVPc !!のほうが2文字だし、ここでヌルポが上がるかもと分かるので好き
457デフォルトの名無しさん
2019/11/22(金) 11:13:57.45ID:hf/6/1tn 念のため書いておくとKotlin標準ライブラリの関数のことね
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/check-not-null.html
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/check-not-null.html
458デフォルトの名無しさん
2019/11/22(金) 15:35:14.32ID:GTCFu0T7 >>455
何を使うにしても状況に適したものを使えば問題ないと思うよ
何を使うにしても状況に適したものを使えば問題ないと思うよ
459デフォルトの名無しさん
2019/11/24(日) 06:37:41.88ID:wyfl3vqB >>450
NullObjectはどのような場合でも正しく機能するNullObjectを定義できるなら優れているが、「どのような場合でも」を満たすのは難しい。
null発生の状況が複数ある場合は「どのような場合でも」というい条件を満たすNullObjectが定義可能である保証もない。
最初は条件を満たしていても、プログラムを修正していくうちに条件を満たせない場合が出てくる可能性もある。
しかも「気づかないうちに」そうなっている可能性がありたちが悪い。
条件を満たせない場所だけ分岐させるのは、NullObjectがnullチェック分岐消去を目的にしている
ことを考えると本末転倒な解決策。
NullObjectはどのような場合でも正しく機能するNullObjectを定義できるなら優れているが、「どのような場合でも」を満たすのは難しい。
null発生の状況が複数ある場合は「どのような場合でも」というい条件を満たすNullObjectが定義可能である保証もない。
最初は条件を満たしていても、プログラムを修正していくうちに条件を満たせない場合が出てくる可能性もある。
しかも「気づかないうちに」そうなっている可能性がありたちが悪い。
条件を満たせない場所だけ分岐させるのは、NullObjectがnullチェック分岐消去を目的にしている
ことを考えると本末転倒な解決策。
460デフォルトの名無しさん
2019/11/24(日) 12:53:04.20ID:gnIUHiL6 APIレスポンスとかデータ定義はNULLじゃない扱いしておいてビルドエラーもでないけど、
実際に動作させるとNULLが来てクラッシュするとかあるな
実際に動作させるとNULLが来てクラッシュするとかあるな
461デフォルトの名無しさん
2019/11/25(月) 11:44:00.50ID:8LK1eAYw すごーく簡略化すれば、
private hoge: Hoge? = null
public Hoge apiX() {
if (hoge == null) hoge = Hoge() //
return hoge!! // ここでnullはあり得ないよと「宣言」
}
実際にHoge()のところは、さらにJavaの他のAPI呼び出しだったりするとしても、
とにかくnullでないことさえはっきりしているならばなんでもいい。
要するにこの場合は、apiXがnullを消費する責任を持つってことだ。
持たないなら、nullableのまま返す(つまりAPIとしてはnullも正常系だと言っている)。
そんだけのことじゃないかな。
private hoge: Hoge? = null
public Hoge apiX() {
if (hoge == null) hoge = Hoge() //
return hoge!! // ここでnullはあり得ないよと「宣言」
}
実際にHoge()のところは、さらにJavaの他のAPI呼び出しだったりするとしても、
とにかくnullでないことさえはっきりしているならばなんでもいい。
要するにこの場合は、apiXがnullを消費する責任を持つってことだ。
持たないなら、nullableのまま返す(つまりAPIとしてはnullも正常系だと言っている)。
そんだけのことじゃないかな。
462デフォルトの名無しさん
2019/11/25(月) 12:58:08.39ID:Yrf4rnTG >>459
nullobjectは「賢いnull」なんだから、null的な使い方してもいいだろ。
型安全なnullとして受け取ってnull分岐してもいいしな。
あと、null発生の状況が複数あるなら、それぞれ別のnullobjectにしていいんじゃない?。
nullobjectは「賢いnull」なんだから、null的な使い方してもいいだろ。
型安全なnullとして受け取ってnull分岐してもいいしな。
あと、null発生の状況が複数あるなら、それぞれ別のnullobjectにしていいんじゃない?。
463デフォルトの名無しさん
2019/11/25(月) 16:14:54.66ID:c3GBXbYR Javaではnullobjectを賢いnullとするのは正しいと思う
でもnull許容/非許容を型で区別出来るようになったKotlinでは
nullobjectはその利点を無くしてしまう
実装持ちobjectとnullobjectを区別する必要が無い場合は何も問題無いけど
もし「nullobjectかどうか」を判定する必要がある場合は
賢いどころか逆になると思う
でもnull許容/非許容を型で区別出来るようになったKotlinでは
nullobjectはその利点を無くしてしまう
実装持ちobjectとnullobjectを区別する必要が無い場合は何も問題無いけど
もし「nullobjectかどうか」を判定する必要がある場合は
賢いどころか逆になると思う
464デフォルトの名無しさん
2019/11/25(月) 17:15:40.69ID:1vTuETYq NullObjectは"Tell, Don't Ask"なクラス設計ではうまく機能するんだけど、
関数型チックになAskだらけのコードだと使い物にならんね
関数型チックになAskだらけのコードだと使い物にならんね
465デフォルトの名無しさん
2019/11/25(月) 17:22:39.99ID:6yLunbOP >もし「nullobjectかどうか」を判定する必要がある場合は
これはないだろ。動機そのものだから。
これはないだろ。動機そのものだから。
466デフォルトの名無しさん
2019/11/25(月) 18:23:52.73ID:c3GBXbYR467デフォルトの名無しさん
2019/11/25(月) 18:24:22.70ID:OXWkeipl nullの場合の動作を
呼び出す側が決めるのか呼び出される側が決めるのか
どちらが適切なのかを考えるといい
呼び出される側が100%決め打ちできるユースケースならNullObjectは有効
呼び出し側でハンドリングしたくなったら邪魔
呼び出す側が決めるのか呼び出される側が決めるのか
どちらが適切なのかを考えるといい
呼び出される側が100%決め打ちできるユースケースならNullObjectは有効
呼び出し側でハンドリングしたくなったら邪魔
468デフォルトの名無しさん
2019/11/25(月) 18:27:30.40ID:WgtQU+bP java脳からkotlin脳へアプデが必要だけど
私の脳はnull
私の脳はnull
469デフォルトの名無しさん
2019/11/25(月) 18:49:15.70ID:6yLunbOP Null Objectは単なる先送りで、ある意味!!が目指す方向とは真逆。
エラーが起きないから落ちることはないだろうけど、
使う側はエラーなのか無視されているのかわかりにくくなる。
エラーが起きないから落ちることはないだろうけど、
使う側はエラーなのか無視されているのかわかりにくくなる。
470デフォルトの名無しさん
2019/11/25(月) 19:00:53.76ID:Yrf4rnTG471デフォルトの名無しさん
2019/11/25(月) 19:04:09.34ID:OXWkeipl >>470
Nullableって知ってる?
Nullableって知ってる?
472デフォルトの名無しさん
2019/11/26(火) 08:06:30.50ID:cEMWujE4 >>471
nullableでnon-nullにできたっけ?
nullableでnon-nullにできたっけ?
473デフォルトの名無しさん
2019/11/26(火) 09:17:18.40ID:i6eVGflj >>472
nullが正常系である場所ではnullabeを使い、nullが紛れ込んだらバグになる場所では非nullを使うって話がもう出てる
適切にゾーニングできているなら紛れ込むことをそう恐れる必要がない
nullという特殊値に対して意識が必要な場所はnullabeという型で言語仕様レベルで明確化でき区別できるからメリットがあり、型無しのnullというほど不便なものでもない
nullが正常系である場所ではnullabeを使い、nullが紛れ込んだらバグになる場所では非nullを使うって話がもう出てる
適切にゾーニングできているなら紛れ込むことをそう恐れる必要がない
nullという特殊値に対して意識が必要な場所はnullabeという型で言語仕様レベルで明確化でき区別できるからメリットがあり、型無しのnullというほど不便なものでもない
474デフォルトの名無しさん
2019/11/26(火) 09:21:30.92ID:i6eVGflj >>465
それがないならNullObjectがいいと思うよ
そこを否定している人はいないはず
ただ多くの人は経験上避けがたいと思ってるから意見が合わないんだろうね
解放閉鎖原則と単一責任原則とで作ってくと最初の動機だけではなかなか完結しない
全部ビジターパターンでとことんNullObject-ableな型にお伺いをたてるように作れば完璧にできるだろうけど、そこまで作り込むコストを考えたら適材適所でnullableを使い分けるのが現実解ってのが落としどころだと思う
Kotlinが選び提供している価値はnullセーフであってnullフリーではないし
それがないならNullObjectがいいと思うよ
そこを否定している人はいないはず
ただ多くの人は経験上避けがたいと思ってるから意見が合わないんだろうね
解放閉鎖原則と単一責任原則とで作ってくと最初の動機だけではなかなか完結しない
全部ビジターパターンでとことんNullObject-ableな型にお伺いをたてるように作れば完璧にできるだろうけど、そこまで作り込むコストを考えたら適材適所でnullableを使い分けるのが現実解ってのが落としどころだと思う
Kotlinが選び提供している価値はnullセーフであってnullフリーではないし
475デフォルトの名無しさん
2019/11/26(火) 10:05:06.19ID:XO/gVUyI NullObjectって非同期呼び出しとかどうすんの
OOの原理主義的にはコールバックの呼び出しもしないのが正しいんだろうけど、
最近は前後で文脈が繋がってて、コールバックが呼ばれないままだとまともに動かないケースがほとんどだよね
かといってコールバックしようにも引数に何渡せばいいのかとか色々無理がある
OOの原理主義的にはコールバックの呼び出しもしないのが正しいんだろうけど、
最近は前後で文脈が繋がってて、コールバックが呼ばれないままだとまともに動かないケースがほとんどだよね
かといってコールバックしようにも引数に何渡せばいいのかとか色々無理がある
476デフォルトの名無しさん
2019/11/27(水) 12:20:06.50ID:OjEIAAu4477デフォルトの名無しさん
2019/11/27(水) 12:55:51.34ID:4s/5SlmV478デフォルトの名無しさん
2019/12/06(金) 11:58:04.47ID:tlCdS/Zs なぜKotlin/Nativeのメモリモデルが成り立たないか
https://itnext.io/why-the-kotlin-native-memory-model-cannot-hold-ae1631d80cf6
https://itnext.io/why-the-kotlin-native-memory-model-cannot-hold-ae1631d80cf6
479デフォルトの名無しさん
2019/12/06(金) 14:42:47.13ID:08yg4gJX 三行に要約すると?
480デフォルトの名無しさん
2019/12/06(金) 15:14:59.67ID:tlCdS/Zs481デフォルトの名無しさん
2019/12/06(金) 16:40:22.09ID:e8Nbwz4h > This is the work of “top-level objects are frozen by default” and “a frozen datum cannot be mutated”.
Kotlin native試したことないけどこれ糞過ぎやろ
既存の(JVM向けに書かれた)コードがほぼ例外なく実行時にクラッシュすることになるやんけ
こんな互換性の欠片もないもん作るんやったらもう別言語でええやろ
Kotlin native試したことないけどこれ糞過ぎやろ
既存の(JVM向けに書かれた)コードがほぼ例外なく実行時にクラッシュすることになるやんけ
こんな互換性の欠片もないもん作るんやったらもう別言語でええやろ
482デフォルトの名無しさん
2019/12/06(金) 22:26:57.61ID:7KbOmiy4 kotlinてクラス変数に型推論使えるの?
Javaで無名クラスに利用できたらいいのにと思ったことがある
class Hello {
public var xyz = new Object (){ int x; int y; int z; };
void setX(int value){ xyz.x = value; }
}
Javaで無名クラスに利用できたらいいのにと思ったことがある
class Hello {
public var xyz = new Object (){ int x; int y; int z; };
void setX(int value){ xyz.x = value; }
}
483デフォルトの名無しさん
2019/12/06(金) 23:00:45.17ID:tlCdS/Zs484デフォルトの名無しさん
2019/12/09(月) 00:07:21.07ID:MrA/6cBN485デフォルトの名無しさん
2019/12/11(水) 10:04:40.40ID:YSNG9ChM Kotlin 1.4以降に何を期待するか
https://blog.jetbrains.com/kotlin/2019/12/what-to-expect-in-kotlin-1-4-and-beyond/
品質とパフォーマンスに焦点を当て
大きな機能追加よりエクスペリエンスを向上させること(小さな機能追加はある)
Trailing Commaはありがたい
https://blog.jetbrains.com/kotlin/2019/12/what-to-expect-in-kotlin-1-4-and-beyond/
品質とパフォーマンスに焦点を当て
大きな機能追加よりエクスペリエンスを向上させること(小さな機能追加はある)
Trailing Commaはありがたい
486デフォルトの名無しさん
2019/12/11(水) 10:35:44.03ID:YSNG9ChM GitHub統計
https://madnight.github.io/githut/
中々上がらない原因になってそうなのは
・スマホアプリでのクロスプラットフォーム性が他より劣る
・Kotlin/NativeやGraalVMのAOTの性能が
他のGC持ちAOT(Go, C#)に全然追いつけてない
・AltJSとしてはTSに完敗
・Javaが割とモダン化していってる
https://madnight.github.io/githut/
中々上がらない原因になってそうなのは
・スマホアプリでのクロスプラットフォーム性が他より劣る
・Kotlin/NativeやGraalVMのAOTの性能が
他のGC持ちAOT(Go, C#)に全然追いつけてない
・AltJSとしてはTSに完敗
・Javaが割とモダン化していってる
487デフォルトの名無しさん
2019/12/11(水) 17:32:54.10ID:zuvdOeFn kotlin/jsは可能性がなさすぎるから諦めて他のとこにリソース使ってほしい。。
488デフォルトの名無しさん
2019/12/11(水) 18:11:35.13ID:QRMyBX+7 ちょっとオワコン感が漂い始めたよね
489デフォルトの名無しさん
2019/12/11(水) 18:44:39.88ID:3C9pU9bg これから始めようと思ってた
490デフォルトの名無しさん
2019/12/11(水) 21:20:44.17ID:cbWhmdF6 クロスプラットフォームは糞に例外なし
491デフォルトの名無しさん
2019/12/12(木) 03:31:17.93ID:HDvavFF6 nativeでクロスプラットフォーム狙うならリッチな標準クラスライブラリがないと駄目だろ。言語だけ用意されても。
kotlin/JVMみたく他に寄生するなら寄生先のライブラリ使えるからいいけど。
nativeどうする気なの。
.netやjavaみたいな最低限の標準クラスライブラリないと役立たず。
kotlin/JVMみたく他に寄生するなら寄生先のライブラリ使えるからいいけど。
nativeどうする気なの。
.netやjavaみたいな最低限の標準クラスライブラリないと役立たず。
492デフォルトの名無しさん
2019/12/12(木) 10:07:02.43ID:Ijd1d2r8 どうする気もないでしょ
JBが本気でKotlinで天下獲るつもりならGoLandとRiderとResharperを今すぐ廃止すればいい
それをしていないということはその程度の覚悟なんだよ
粛々とチームを解散して開発者を解雇するだけだ
JBが本気でKotlinで天下獲るつもりならGoLandとRiderとResharperを今すぐ廃止すればいい
それをしていないということはその程度の覚悟なんだよ
粛々とチームを解散して開発者を解雇するだけだ
493デフォルトの名無しさん
2019/12/13(金) 23:58:30.55ID:++ulbKLC クロスプラットフォームがこんなに早く普及し始めるとはのぉ。
494デフォルトの名無しさん
2019/12/14(土) 00:19:00.68ID:df1+QJt4 JavaでWindowsで開発してlinuxでうごかしとる
バージョンはこないだまで6だった
やっとJavaのかかとの所ぐらいまで世界が追い付いてきたようだ
バージョンはこないだまで6だった
やっとJavaのかかとの所ぐらいまで世界が追い付いてきたようだ
495デフォルトの名無しさん
2019/12/17(火) 06:30:13.16ID:noRj1Nsm Kotlin/Nativeってバージョン番号が1.0を越えてるけど、
ベータ版を脱したってことでいいの?
ベータ版を脱したってことでいいの?
496デフォルトの名無しさん
2019/12/17(火) 10:45:01.35ID:buNxOUZu クラスのnullableなインスタンスプロパティが複数(a,b,c)あって、
それらが全部nullじゃないときに実行できるメソッドあり、
fun execute() {
if (!canExecute)
return
val a_ = a!!
val b_ = b!!
val c_ = c!!
}
いちいちこういう事やってんだけど、なんとかならんもんか・・
それらが全部nullじゃないときに実行できるメソッドあり、
fun execute() {
if (!canExecute)
return
val a_ = a!!
val b_ = b!!
val c_ = c!!
}
いちいちこういう事やってんだけど、なんとかならんもんか・・
497デフォルトの名無しさん
2019/12/17(火) 11:51:21.83ID:CYemexLv 小手先のテクニックよりも設計を見直すべきでは
a, b, cを一つの型に纏められないの?
a, b, cを一つの型に纏められないの?
498デフォルトの名無しさん
2019/12/17(火) 18:50:15.12ID:buNxOUZu MVVMのViewModelつくったことないの?
ViewModelを作るとたいがいこんなことになるんだが。
ViewModelを作るとたいがいこんなことになるんだが。
499デフォルトの名無しさん
2019/12/17(火) 19:23:57.27ID:CYemexLv >>498
いや、なんでa, b, cをわざわざ別個の変数に代入し直す必要があるの?
そこMVVM云々の事情は無関係だよね
HogeModel(a!!, b!!, c!!).execute()とかなら別に違和感ないやろ
いや、なんでa, b, cをわざわざ別個の変数に代入し直す必要があるの?
そこMVVM云々の事情は無関係だよね
HogeModel(a!!, b!!, c!!).execute()とかなら別に違和感ないやろ
500デフォルトの名無しさん
2019/12/17(火) 19:27:54.98ID:buNxOUZu 普通のクラスだとこんなことにならんが、複雑に状態が遷移するViewModelだとこんなことになる。
ちょっと前にNullオブジェクトパターンの話題あったけど、NullオブジェクトじゃなくてViewModelの内部でStateパターン使えばたぶんいけると思うがめんどくさそう。
ちょっと前にNullオブジェクトパターンの話題あったけど、NullオブジェクトじゃなくてViewModelの内部でStateパターン使えばたぶんいけると思うがめんどくさそう。
501デフォルトの名無しさん
2019/12/17(火) 19:32:07.34ID:buNxOUZu >>499
ああ、!!排除するために内部でそのために別のクラスに追い出せってことかなるほど。
ああ、!!排除するために内部でそのために別のクラスに追い出せってことかなるほど。
502デフォルトの名無しさん
2019/12/17(火) 20:00:31.90ID:buNxOUZu つか、そのためだけならクラスを別に用意するんじゃなくてもいいんだよな。
ただ、executeCoreって別のnon-nullableな引数とるメソッド用意してexecuteCore(a!!,b!!,c!!)するだけで
実際のその先の処理もa_.hoge(b_,c_)とかでちゃんと処理委譲してるから毎回10数行レベルで、更に他に分割するって発想なかったわ。
ただ、executeCoreって別のnon-nullableな引数とるメソッド用意してexecuteCore(a!!,b!!,c!!)するだけで
実際のその先の処理もa_.hoge(b_,c_)とかでちゃんと処理委譲してるから毎回10数行レベルで、更に他に分割するって発想なかったわ。
503デフォルトの名無しさん
2019/12/17(火) 21:26:42.16ID:sdUma5iy !! はいかんぞ
504デフォルトの名無しさん
2019/12/17(火) 21:41:44.72ID:Ef4LKPDY505デフォルトの名無しさん
2019/12/18(水) 01:11:24.71ID:Kzz0aLWj nullチェックのガード節後に、スマートキャストが効けばいいわけだな
506デフォルトの名無しさん
2019/12/18(水) 02:07:44.40ID:J0mER5OC あたたたたたたた!!
507デフォルトの名無しさん
2019/12/19(木) 00:36:56.60ID:pvCX0U01 あたたたたたたた?.let {
}
}
508デフォルトの名無しさん
2019/12/19(木) 08:27:47.53ID:0eo+DnKB みなさん
今日からKotlinを目指す事になった者です
よろしくお願いします
今日からKotlinを目指す事になった者です
よろしくお願いします
509デフォルトの名無しさん
2019/12/19(木) 08:45:53.31ID:xYioGlNJ kotlinを目指す
java始めたってことか?
java始めたってことか?
510デフォルトの名無しさん
2019/12/19(木) 08:55:17.26ID:0eo+DnKB511デフォルトの名無しさん
2019/12/19(木) 08:56:43.83ID:0eo+DnKB やっぱりプログラミング言語で合ってるじゃないですか
初心者をいじめないで下さいよ
初心者をいじめないで下さいよ
512デフォルトの名無しさん
2019/12/19(木) 08:57:14.39ID:0eo+DnKB ID:xYioGlNJをNGにした
513デフォルトの名無しさん
2019/12/19(木) 09:10:42.29ID:sBMQ4GMS kotlin始めましたならわかる
kotlin目指したらhallo world書いたら目標到達じゃないか
kotlin目指したらhallo world書いたら目標到達じゃないか
514デフォルトの名無しさん
2019/12/19(木) 09:11:54.91ID:0eo+DnKB >>513
Kotlin始めました
Kotlin始めました
515デフォルトの名無しさん
2019/12/19(木) 09:14:19.85ID:0eo+DnKB >>513
でもまだ本が届いてないんです!
かといってプロゲートを調べたらKotlinがないしドットインストールを調べたらクッソ高ぇし
ヨ■■■で
作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 & Kotlin1.3で学ぶはじめてのスマホアプリ作成
って本をポチりました
でもまだ本が届いてないんです!
かといってプロゲートを調べたらKotlinがないしドットインストールを調べたらクッソ高ぇし
ヨ■■■で
作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 & Kotlin1.3で学ぶはじめてのスマホアプリ作成
って本をポチりました
516デフォルトの名無しさん
2019/12/19(木) 09:15:16.14ID:0eo+DnKB >>513
こんな状態で僕はKotlinを始めている事になるのでしょうか!?
こんな状態で僕はKotlinを始めている事になるのでしょうか!?
517デフォルトの名無しさん
2019/12/19(木) 11:32:38.18ID:5d66kii1 思い込みが大事
518デフォルトの名無しさん
2019/12/19(木) 12:36:14.53ID:DRlK3voY519デフォルトの名無しさん
2019/12/19(木) 12:51:05.10ID:0uPukb6z >>514
そんなこと書いた張り紙がラーメン屋にさりげなく貼られてたらどうしよう
そんなこと書いた張り紙がラーメン屋にさりげなく貼られてたらどうしよう
520デフォルトの名無しさん
2019/12/19(木) 13:37:11.92ID:0eo+DnKB521デフォルトの名無しさん
2019/12/19(木) 13:41:10.68ID:0eo+DnKB オンライン講座やアプリにカネをかけたら負けだと思っているのでJavaの本もポチりました
「Java1年生―体験してわかる!会話でまなべる!プログラミングのしくみ」
まずはこれを読んでから
「作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 & Kotlin1.3で学ぶはじめてのスマホアプリ作成」
を読む事にしました
アデュー
「Java1年生―体験してわかる!会話でまなべる!プログラミングのしくみ」
まずはこれを読んでから
「作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 & Kotlin1.3で学ぶはじめてのスマホアプリ作成」
を読む事にしました
アデュー
522デフォルトの名無しさん
2019/12/19(木) 13:48:14.38ID:+cpLTGtZ 逆やろ
本買ったら負け
ほぼオンラインで事足りる
本買ったら負け
ほぼオンラインで事足りる
523デフォルトの名無しさん
2019/12/19(木) 13:58:35.22ID:0eo+DnKB >>522
俺たちは理解力ゼロの人間だから
俺たちは理解力ゼロの人間だから
524デフォルトの名無しさん
2019/12/19(木) 14:25:11.21ID:dMnFAlGo 各言語のスッキリシリーズを生み出した、伝説の本!
まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014
その後に、太郎本をやるのが定番!
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014
その後に、太郎本をやるのが定番!
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
525デフォルトの名無しさん
2019/12/19(木) 15:34:22.45ID:Cn4tHGlw526デフォルトの名無しさん
2019/12/19(木) 16:26:30.93ID:0uPukb6z >>522
そういや動画はわかりやすいと誰かが書いてたな。俺はわざわざ動画探して見ないけど。
そういや動画はわかりやすいと誰かが書いてたな。俺はわざわざ動画探して見ないけど。
527デフォルトの名無しさん
2019/12/19(木) 19:30:40.54ID:lI3TBUYc 手動かしてたら覚える
本も動画もメンターもいらなかった
本も動画もメンターもいらなかった
528デフォルトの名無しさん
2019/12/19(木) 21:42:53.35ID:+kCyq/oE 勉強してプログラミングを覚えてからアプリを作るっていう考えがそもそも間違い
まず作りたいものがあるべきでその作りたいものを作るために必要な知識を
都度調べて問題の解決を繰り返すという方法で進むべき
作りたいものがないなら向いてないからプログラミングなんかやめてしまえ時間の無駄
まず作りたいものがあるべきでその作りたいものを作るために必要な知識を
都度調べて問題の解決を繰り返すという方法で進むべき
作りたいものがないなら向いてないからプログラミングなんかやめてしまえ時間の無駄
529デフォルトの名無しさん
2019/12/19(木) 22:02:46.62ID:rHJ8IYKv まあ、そう言わんでも
君が数学を学んでいた頃、数学でやりたかったことあったの?
君が数学を学んでいた頃、数学でやりたかったことあったの?
530デフォルトの名無しさん
2019/12/19(木) 22:20:55.18ID:57XsBiPj 回転機能とワイヤーフレーム3Dでドヤってたら
あっという間に世間はポリゴンだのテクスチャだのバンプマッピングだの
ほんの数年の間の話
あっという間に世間はポリゴンだのテクスチャだのバンプマッピングだの
ほんの数年の間の話
531デフォルトの名無しさん
2019/12/19(木) 22:23:45.85ID:WqEVCHn0 大体アプリを作るのに必要な知識って言語の文法だけじゃない
Android SDKの知識も必要だし設計もMVVMとかfluxとかいろいろある
今の主流の外部ライブラリが何かとか非同期処理の実装はどうするか
Firebaseとかも活用した方がいいだろう
必要な知識が広すぎるのに目的もなくただ漠然と必要そうだとつまみ食いしてるだけで
あっという間に時間は終わっていく
大体5年もすればソフトウェアの世界は一変する
結局何も生み出せないまま技術に振り回されて時間が過ぎていくだけ
Android SDKの知識も必要だし設計もMVVMとかfluxとかいろいろある
今の主流の外部ライブラリが何かとか非同期処理の実装はどうするか
Firebaseとかも活用した方がいいだろう
必要な知識が広すぎるのに目的もなくただ漠然と必要そうだとつまみ食いしてるだけで
あっという間に時間は終わっていく
大体5年もすればソフトウェアの世界は一変する
結局何も生み出せないまま技術に振り回されて時間が過ぎていくだけ
532デフォルトの名無しさん
2019/12/19(木) 23:03:29.10ID:rHJ8IYKv ふーん、偉いんだね
533デフォルトの名無しさん
2019/12/19(木) 23:26:51.07ID:Cn4tHGlw さっき気がついたんだけど
kotlinってimportしなくなった?不要なの?
Math.sin/cos/tan使ってもimportせずに使えてなんか変な感じです
kotlinってimportしなくなった?不要なの?
Math.sin/cos/tan使ってもimportせずに使えてなんか変な感じです
534デフォルトの名無しさん
2019/12/20(金) 06:46:42.42ID:YAC9G70z >>533
https://kotlinlang.org/docs/reference/packages.html#default-imports
Javaでも java.lang.* (StringやMathなど) はインポート書かずに使える
https://kotlinlang.org/docs/reference/packages.html#default-imports
Javaでも java.lang.* (StringやMathなど) はインポート書かずに使える
535デフォルトの名無しさん
2019/12/20(金) 10:39:15.14ID:JC7V0cWR 1.4でkotlin/nativeが爆速になってgoが死亡する世界線に行きたい
536デフォルトの名無しさん
2019/12/20(金) 19:57:21.77ID:fz/tpFJr 誰かが1000億円の間違いしなかった世界がいい
今更Kotlinとか付け焼刃
今更Kotlinとか付け焼刃
537デフォルトの名無しさん
2019/12/20(金) 21:49:59.43ID:BqL6wPJ0538デフォルトの名無しさん
2019/12/21(土) 15:23:12.50ID:z0W1zCos >>536
何の話?
何の話?
539デフォルトの名無しさん
2019/12/21(土) 15:26:06.69ID:z0W1zCos >>533
俺は変な感じがしない。なぜならJavaの頃からそのように使っているからだ。というかむしろそうでない方に違和感がある。
俺は変な感じがしない。なぜならJavaの頃からそのように使っているからだ。というかむしろそうでない方に違和感がある。
540デフォルトの名無しさん
2019/12/22(日) 00:16:19.54ID:tkZGS0uw541デフォルトの名無しさん
2019/12/22(日) 01:17:50.71ID:lJarWdBZ Union typeないの?
542デフォルトの名無しさん
2019/12/22(日) 02:55:53.04ID:lBW/6Z3k union って、C言語の union のこと? そういうのはないね。自分で無理矢理 Byte 配列に詰め込むのなら出来るが。
543デフォルトの名無しさん
2019/12/22(日) 03:55:07.63ID:buP4BnNs >>541
sealed class
sealed class
544デフォルトの名無しさん
2019/12/22(日) 07:09:03.62ID:tHQUUh7m こういうやつでしょ
var a : (String | List<Int>) = "aaa"
a = listOf(10)
無いよ
var a : (String | List<Int>) = "aaa"
a = listOf(10)
無いよ
545デフォルトの名無しさん
2019/12/22(日) 17:46:16.29ID:buP4BnNs sealed class Either<L, R>{
class Left<L, R>(val value: L): Either<L, R>()
class Right<L, R>(val value: R): Either<L, R>()
}
var a: Either<String, List<Int>> = Either.Left(“foo”)
https://pl.kotl.in/1oWpsAGCs
KotlinはJavaの足枷が重いから劇的に使いやすくなることはなさそう
class Left<L, R>(val value: L): Either<L, R>()
class Right<L, R>(val value: R): Either<L, R>()
}
var a: Either<String, List<Int>> = Either.Left(“foo”)
https://pl.kotl.in/1oWpsAGCs
KotlinはJavaの足枷が重いから劇的に使いやすくなることはなさそう
546デフォルトの名無しさん
2019/12/22(日) 22:24:55.21ID:qcLf379+ Union typeをサポートするとString?型もString | nullの略記でしかなくなるのだろうか
547デフォルトの名無しさん
2019/12/23(月) 13:25:26.95ID:8tSOZ4fL しかしnullは型の名前ではないな。
548デフォルトの名無しさん
2019/12/23(月) 21:19:46.42ID:UCqRJFPo Unitと同じくオブジェクト宣言にすれば型としても値としても使える
TypeScriptのようにリテラル型という方式もあるけど
function f(): string | null | 10 { return 10; }
TypeScriptのようにリテラル型という方式もあるけど
function f(): string | null | 10 { return 10; }
549デフォルトの名無しさん
2019/12/23(月) 22:41:55.78ID:38BjLmtU sealed classってinterfaceを持たないfinalなクラスをEither型には出来ないってことであってる?
550デフォルトの名無しさん
2019/12/23(月) 22:55:01.39ID:4g9tMDJ4 GraphQL使ってるとunion欲しくなるよな
551デフォルトの名無しさん
2020/01/01(水) 00:07:09.43ID:fUaq4dOi あけましておめでとうございます。
ことりんもよろしくおねがいします。
ことりんもよろしくおねがいします。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 【高市速報】中国、最後通牒 [308389511]
- しね✋ーーーーー☀
- 【高市速報】中国、世界の敵になり始めるwwwwwwwwwwwwww [308389511]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- 【速報】福島原発でキセノン135が検出されてる模様、再臨界か [668970678]
- 今からアダルトショップ行くか迷ってるからオススメ教えろ!
