X



Kotlin 6

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2019/06/22(土) 15:59:57.23ID:zj+KJbMh
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
Kotlin 5
https://mevius.5ch.net/test/read.cgi/tech/1544268581/
0167デフォルトの名無しさん
垢版 |
2019/08/10(土) 14:53:06.48ID:7hwbBJNq
>>165
LinkedHashSetかTreeSetにように順序付けがあるならいいけど
単にSetとして考えるなら順序不定だから2つのSetの関連付けが出来ない

仕様の前提から考え直したほうが良い
一応順序があるなら m = setK.zip(setV).associate{it} で出来る
0168デフォルトの名無しさん
垢版 |
2019/08/11(日) 21:22:32.39ID:ZXwxD5+u
今コード書いていて疑問に思ったんだけど、String#sliceとString#substringって何が違うの?
0169デフォルトの名無しさん
垢版 |
2019/08/11(日) 23:47:08.23ID:oR4Xkpxd
slice?
0171デフォルトの名無しさん
垢版 |
2019/08/12(月) 07:04:34.47ID:+GFDKMmL
あー。しかしちょっと違うね。CharSequence と String の違いか。
0172デフォルトの名無しさん
垢版 |
2019/08/12(月) 09:27:25.92ID:ByCVSLZd
String#slice -> String もあるよ

挙動に差があるようだけど実用上意味があるかは微妙だな
https://ideone.com/lIfuV9

fun ck(nm:String, f:()->String){
try { println("${nm} = ${f()}") }
catch(t:Throwable){ println("${nm} throw ${t}") }
}

fun ck(r:IntRange){
ck("su(${r})"){ "0123456789".substring(r) }
ck("sl(${r})"){ "0123456789".slice(r) }
}

ck(1..3)
ck(3..1)
ck(-2..-4)
ck(1..-1)
ck(-1..1)
ck(8..12)
ck(-4..-2)
0173デフォルトの名無しさん
垢版 |
2019/08/12(月) 10:26:11.95ID:rOThr/rm
この並存状態と微妙な差はJavaScriptの現状に倣ったんじゃないかな
いずれにしてもそれぞれの意図が明確にドキュメント化されていないみたいなので実装の差を活用する気にはなれないけど
0179デフォルトの名無しさん
垢版 |
2019/08/12(月) 17:32:35.13ID:ByCVSLZd
>>176
書き捨てなのと5chの制限回避で文字数・行数圧縮してるんすよ・・・
2文字以下で現代的(?)なのがあるならすまん
0182デフォルトの名無しさん
垢版 |
2019/08/12(月) 23:45:35.98ID:XEveaWQR
>>172
ちょっとわかった。ありがとう。
>>173
なんとなくそうかなと思っていたけど、やっぱりJavaScriptとの互換性のためにsliceを導入したのかな。
>>177
中高生...
0183デフォルトの名無しさん
垢版 |
2019/08/13(火) 15:31:14.99ID:5AmJrB7O
ckは中高年だろjk...
0184デフォルトの名無しさん
垢版 |
2019/08/13(火) 17:47:19.54ID:Jow6dsXJ
こういうところもKotlinがとっつきにくいと言われる一因だよな
まあ実際には知らなくても困ることはあまりないんだけど
0185デフォルトの名無しさん
垢版 |
2019/08/13(火) 19:30:04.03ID:9XoWp9xR
firebase firestoreを使っていて月額固定のflameプランを契約しているんですが、
一日の上限の読み取り回数である25万回を超えても普通に使えてるんですが何なんですかね
0186デフォルトの名無しさん
垢版 |
2019/08/13(火) 23:01:55.66ID:Jow6dsXJ
サポートに聞いてみたら?
勝手に追加課金されることはないだろうけど、確かめるに越したこたはない
0187デフォルトの名無しさん
垢版 |
2019/08/13(火) 23:40:10.49ID:9XoWp9xR
てか読み取り回数すぐ増え過ぎじゃないですか
realtimedatabaseより遥かに高い
これからはfirestoreに移行するもんだと思って使ってみてるのに
クエリー使わないならrealtimedatabase使ったほうがいいし
0188デフォルトの名無しさん
垢版 |
2019/08/14(水) 20:22:16.10ID:yoJp7Q+u
googleの新しいカモ要員っしょ
開発力あるなら柔軟性のあるGAEとかを直接叩くほうがいいと思う
0189デフォルトの名無しさん
垢版 |
2019/08/14(水) 21:19:15.88ID:84Oh9mQQ
オフライン機能ついたデータ同期する場合はfirestore楽なんだけど。
それを自前で実装?ご冗談を
0191デフォルトの名無しさん
垢版 |
2019/08/15(木) 19:17:22.46ID:HuJciu41
これもしかして25万回超えなかった日の分が
超えた日の分に補填されてるんですかね
0196デフォルトの名無しさん
垢版 |
2019/08/31(土) 15:34:13.20ID:8SnjJh04
初心者向けの本を買ったんだが、この方が簡単ですとか言いながらガラケー時代の画面を作らせるとんでもない本をつかまされた…
0197デフォルトの名無しさん
垢版 |
2019/08/31(土) 16:27:15.76ID:E5RG3LAO
>>195
ぐぐると出てくる

>>196
ガラケー?今さら実行可能な環境がないように思うが。
Androidだけどガラホで画面が狭いだけではなく?
0200デフォルトの名無しさん
垢版 |
2019/08/31(土) 21:17:33.98ID:fnsFNUOu
あーそれ系か。
昔(2000年頃)、DirextXで3Dシューティングを作るための勉強本が出たんだけど、
物凄く丁寧で最初は数学の復習が書いてあった。
(高校数学の法線ベクトルの考えたかとか)

で、読んでも意味がわからん勉強ができない俺を馬鹿にしてるのか金返せと
本屋に怒鳴り込んできた20代の子が居たんだよ。

だからかは知らないが、本に載ってるゲームは結構簡単なレベルのものが多くなったなあ。
0202デフォルトの名無しさん
垢版 |
2019/09/01(日) 01:06:54.68ID:sYwYgS29
>>200
尼でもコメントに理解出来ないって書いて評価下げる香具師が多いな
0205デフォルトの名無しさん
垢版 |
2019/09/01(日) 08:38:53.82ID:zZOev42p
まあ、著者や編集者の力不足で教えるの下手くそな本はあるにはあるよ
名プログラマーであるからといって、そのシステムの開発者であるからといって、他人(初学者)に教える文章を書くのがうまいとは限らない
ただ、思ったようなアプリの作り方が載ってないってのはあんまり作者の責任ではないな
0206デフォルトの名無しさん
垢版 |
2019/09/01(日) 11:16:53.58ID:kCJZVLuH
造り方が既にそこら中に転がってて後追いで造っても面白くないやろ
創り方は自分で考えろ
0208デフォルトの名無しさん
垢版 |
2019/09/01(日) 14:35:22.29ID:9BbodNVn
後追いいいじゃないか
先人が1ヶ月悩んだ結果を15分で乗り越えて経験積めるんだぞ
残り29日23時間45分はそれをもとにしたさらに別なことに使えるんだ
梃子の効果すごいだろ(間違い)
0212デフォルトの名無しさん
垢版 |
2019/09/02(月) 12:54:07.77ID:/e661u5A
香具師の木
0216デフォルトの名無しさん
垢版 |
2019/09/03(火) 14:26:04.23ID:6Dqkf6EJ
今からプログラミングを学ぶとしたらjavaよりkotlinのほうがいいよね?
0217デフォルトの名無しさん
垢版 |
2019/09/03(火) 14:34:14.84ID:fMS/rXUz
まあそうだろうな
0220デフォルトの名無しさん
垢版 |
2019/09/04(水) 19:59:15.19ID:juCQidKM
>>219
DSLは汎用ライブラリのために丁寧に設計する時用かな。
スキルによるだろうけどDSLのライブラリを使いたいとは思うけど、作りたいとは思わななかった。
0222デフォルトの名無しさん
垢版 |
2019/09/06(金) 20:10:18.09ID:+qwVl2yS
Kotlinでマウントするのはさすがに無理筋
こんなもんJavaわかれば誰にでもできる
0223デフォルトの名無しさん
垢版 |
2019/09/06(金) 20:29:16.58ID:cFgJ4jGo
JavaができるならいずれはKotlinもできるようになるだろうがすぐにではない。
すぐにできたとしても最初の内は Kotlin らしくない Kotlin の良さを生かし切れていない「セミコロンなし Java」みたいな、何年後かに自分で読み直すと修正したくてしたくてたまらなくなるようなプログラムになるであろう。
0225デフォルトの名無しさん
垢版 |
2019/09/06(金) 21:01:33.69ID:cFgJ4jGo
実は俺、N88BASIC(86)も使えるんだ(キリッ
0227デフォルトの名無しさん
垢版 |
2019/09/07(土) 00:23:23.27ID:C+Vj3AQn
アセンブラは価値があるかもだな。
どちらかというと何を作れるか、
もっと言うなら何を作ったことがあるかが大事かと。
0235デフォルトの名無しさん
垢版 |
2019/09/07(土) 14:20:04.10ID:6re/woh0
あ、すまん、回答ありがと
実際にjavaにしたいわけじゃない
将来的にkotlinだけの巨大なスパゲッティを見たときに正しく読めるかな?と不安になってね
0236デフォルトの名無しさん
垢版 |
2019/09/08(日) 14:12:59.11ID:vQDbHeJD
Kotlin使ってもなおスパゲッティになるようならJavaに変換したらもっと凄いスパゲッティになるのではないか?
0237デフォルトの名無しさん
垢版 |
2019/09/08(日) 14:21:36.92ID:vQDbHeJD
Javaで書くと冗長な感じになる表現を小さくまとめられる事が多いしKotlinはそういうのも目標にして作られた言語だからな。
だからJava→Kotlin変換をするとだいたいは量が増えて複雑怪奇なソースになると思う。
0238デフォルトの名無しさん
垢版 |
2019/09/08(日) 14:22:16.25ID:vQDbHeJD
逆だ。Kotlin→Java変換ね。
0239デフォルトの名無しさん
垢版 |
2019/09/08(日) 14:42:39.98ID:g2jzsvZp
作るのはまだjavaでいいだろうけどkotlinをネイティブで読めるようにはなりたい
0244デフォルトの名無しさん
垢版 |
2019/09/09(月) 23:58:48.28ID:66UIYaje
今まで買ったjavaの本、全部kotlinにならないかなぁ…
逆引きのkotlin版ってないの?
0246デフォルトの名無しさん
垢版 |
2019/09/10(火) 07:03:13.64ID:x/dcDmPS
java見ながらkotlinにして書いてると
つまずいたときにjavaでいいやってなる
変換はなんとなくわかるけど、省略するとこがいまいちわからん
どうやら自分は省略すればいいとこを無理に変換しようとしてるぽい
そしてまたjavaを書く
0247デフォルトの名無しさん
垢版 |
2019/09/10(火) 07:46:08.16ID:EO8p3gy7
書きやすい方からでいいよ

言語の慣れもあるけどプログラム経験の方が重要
プログラムイディオムや関数型の理解などが進めば
言語の切り替えもスムーズになる
0249デフォルトの名無しさん
垢版 |
2019/09/10(火) 12:42:23.43ID:rIrXed8C
むきむき
0250デフォルトの名無しさん
垢版 |
2019/09/11(水) 21:52:55.09ID:+fGXXck4
速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ Kindle版
山田祥寛 (著)

まあまあ、良かった。Delegate、移譲の部分が消化不良だが、byっていうキーワードでメソッドcallの時にReceiverを取り替えられるって事がわかった。
by Delegate()でa.someMethodっていうメソッド呼び出しをDelegateオブジェクトのsomeMethod呼び出しへと変換できるらしい。
someMethod呼び出しの中でNotificationを行うとかの応用ができる。

lazyとかっていうオブジェクトがよく解らんかった。動かしながら理解しないとだめだな。本を読んだだけではピンと来ない。
0251デフォルトの名無しさん
垢版 |
2019/09/11(水) 21:57:51.62ID:+fGXXck4
KotlinはSwiftに似てると思ってたが、言語仕様はSwiftに比べてコンパクトだった。

ただ、Kotlin関連用語がかなり違和感。vs Swift
constructer - initializer
lambda - closure
object - instance
val, var - let, var
fun - func
interface ISome<T: U> - protocol ISome { associatedtype = T where T: U}
0252デフォルトの名無しさん
垢版 |
2019/09/11(水) 21:59:48.92ID:+fGXXck4
>>251
Genericsの汎用型、型パラメータの書き方はKotlinの方が好みだな。
e.g.
interface ISome<T: U> {…}
0253デフォルトの名無しさん
垢版 |
2019/09/11(水) 22:04:19.76ID:+fGXXck4
他言語プログラマのためのKotlin基礎 Kindle版
Independent Laboratory (著)
その他()の形式およびエディションを表示する
Kindle版
¥0
Kindle Unlimited では、このタイトルや100万冊以上の本をお
0254デフォルトの名無しさん
垢版 |
2019/09/11(水) 22:05:44.19ID:+fGXXck4
>>253
次はこれ読んで見る。
0256デフォルトの名無しさん
垢版 |
2019/09/12(木) 07:23:50.51ID:W3DZId8k
漏れのフレームワーク本の著者の評価では、
掌田津耶乃がトップで、山田祥寛は2番目

山田は100名まで、1人4万円の講座もやってた
0260デフォルトの名無しさん
垢版 |
2019/09/12(木) 08:38:14.19ID:lapELpAL
あ、kotlinの英語の本です
技術英語なんて日本語の本と書いてあることはだいたい同じだから
0262デフォルトの名無しさん
垢版 |
2019/09/12(木) 09:27:48.98ID:sCqf+kbI
>>256
>掌田
この人の本、めったに当たりが無い。
Rubyの本は良かったな。特に、CGIの部分。Rails出現以前の本だった。
この本でhttpdがCGIをどう扱ってるか理解した。
httpのputリクエストのrequest headerをRubyアプリは、stdinから取り込むと知ったのだ。

それまでコマンドライン引数でrequest headerを受け取るのか?
はたまた、環境変数で受け取るのか不思議だったのだ。
0263デフォルトの名無しさん
垢版 |
2019/09/12(木) 09:37:40.30ID:mRFzyQxg
more
0264デフォルトの名無しさん
垢版 |
2019/09/12(木) 09:39:32.11ID:mRFzyQxg
>>262
言語は関係ない。とにかく標準入力から読めば良いのだ。
0266デフォルトの名無しさん
垢版 |
2019/09/12(木) 20:03:11.63ID:sCqf+kbI
>>253
この本、Win10環境で、Kotlinソースをコンパイルする方法が、巻末にあって良い!おまけにsource code download serviceもいい感じ。

Macbook Proをお布施代として払うのはこれからは遠慮したいし。
もう一冊の本、>他言語プログラマのためのKotlin基礎 Kindle版
こいつは、InteliJ IDEAだかなんだかのinstall方法からの説明で、思いやられる。

おれは、Vim + quickrun.vimで動かしたいのだ。おまけに、書籍掲載のソースのdownloadサービスも無し。
■ このスレッドは過去ログ倉庫に格納されています

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