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/07/31(金) 00:16:16.55ID:caFHKtEx
逆引きKotlin

とか出ないんだろうか
2020/07/31(金) 05:20:55.03ID:i9kuS3mX
C#にはどぼんがあったけど、あれでかなり助けられたなあ
2020/07/31(金) 05:26:08.98ID:PQssP+wa
>>191
高レベル放射性廃棄物は地中深く埋葬されて下さい
2020/07/31(金) 07:45:44.70ID:Gsxf/fxD
>>168
Xamarinという選択肢は
2020/07/31(金) 09:14:05.07ID:CsSb3Rzj
>>195
変なもん勧めるなよ・・・
2020/07/31(金) 13:04:29.30ID:g8elMbTe
>>168
会社次第だろ
2020/07/31(金) 13:07:43.26ID:vHvgbSd0
>>197
万能の回答で中身ゼロ
199デフォルトの名無しさん
垢版 |
2020/07/31(金) 14:12:23.57ID:3N4YRTxK
KotlinはC#と同じく統合開発環境の入力支援のおかげで難易度が低く感じやすい。
入力支援のないテキストエディタを使ってKotlinやC#の開発をするとつらみに気づく。
2020/07/31(金) 14:56:18.07ID:dxsBiYNF
今時ただのテキストエディタでやってるとこなんてあるの?
201デフォルトの名無しさん
垢版 |
2020/07/31(金) 15:16:49.29ID:fOAC77cv
基本はviだろ。
2020/07/31(金) 15:34:09.86ID:g8elMbTe
>>198
お前にはBASICがお似合い
2020/07/31(金) 15:49:22.55ID:zPr3zgDB
カルシウムが不足してるから牛乳飲むといいよ
2020/07/31(金) 17:39:05.12ID:TQFPwr7V
>>202
おっと今度は要件も聞かずに回答するのはエスパーなのか
2020/07/31(金) 18:57:36.39ID:VTEZEpms
>>196
えーなんで?
Xamarin好きやで。
スレチになって申し訳ないけど。
2020/07/31(金) 18:57:50.76ID:VTEZEpms
>>196
えーなんで?
Xamarin好きやで。
スレチになって申し訳ないけど。
2020/07/31(金) 18:58:02.83ID:TEm1ohUU
>>196
えーなんで?
Xamarin好きやで。
スレチになって申し訳ないけど。
2020/07/31(金) 18:58:59.05ID:TEm1ohUU
>>196
ごめんm(_ _;)m
何回も書き込んてしまった。
2020/07/31(金) 20:00:16.29ID:i9gNHQWd
久しぶりにkotlin native試してみたら、いまだにhelloworldのコンパイルに10秒以上かかる。。
2020/07/31(金) 20:17:07.59ID:4dfDsnLH
玩具に何を期待しているのか
2020/08/01(土) 01:12:23.76ID:V7ze4pNE
夢と希望の未来がいっぱい詰まってるのさ
2020/08/01(土) 05:35:09.86ID:ypW/FdAX
気持ちよくなることかな
213デフォルトの名無しさん
垢版 |
2020/08/01(土) 11:56:02.27ID:jKwRR0M8
build.gradle.ktsとか使ってるプロジェクトウザいな。
余計なプラグインが増えてビルド時間も長くなるわ、DSLもGroovyより劣化してて単純に読みにくいのに。
2020/08/01(土) 12:28:07.34ID:VuJ2qgfi
Groovyとかいうマイナー型なしクソ言語よりはマシだろ
2020/08/01(土) 12:30:03.91ID:eglkXcmr
Groovyの方がDSLに向いた文法であるのは同感
優れたプログラミング言語があってもそれでビルドを記述したいとは限らんな
2020/08/01(土) 14:33:10.32ID:uuR+R+mv
build.gradle.kts の方が Intellj で編集するときに補完やエラーチェックがちゃんと効くという利点もある
217デフォルトの名無しさん
垢版 |
2020/08/01(土) 17:12:02.60ID:WzMhf7ZH
>>189
ま、しかし、たまにこうならないと過疎ってスレが沈んで消える。
逆に言うとこうなると言うことはまだまだ使う人が沢山居るということでもある。
使われなくなった言語のスレは見る人が少なすぎて煽っても何も起こらない。
2020/08/02(日) 00:31:05.40ID:bo8x9sbh
> 使われなくなった言語のスレは見る人が少なすぎて煽っても何も起こらない。
Delphi をディスるのはやめなさい
2020/08/02(日) 05:00:23.72ID:yz3gxwYF
Φを消すってどう言う意味だろう?
2020/08/04(火) 17:47:41.53ID:DcVqafOY
5ちゃんが高齢化してるなぁと思うのは、Kotlinもそうだけど他の最近流行の言語やらフレームワークやらのスレが全然伸びないところよね
バリバリの若手世代が全然いない
2020/08/04(火) 19:05:54.35ID:4K88qT3S
qiitaに行ってしっまったからでは?
222デフォルトの名無しさん
垢版 |
2020/08/04(火) 20:38:21.24ID:Bm48LwqI
ここで聞かんでもググれば大抵の事がわかるからな
223デフォルトの名無しさん
垢版 |
2020/08/10(月) 16:05:28.72ID:Z7zFlWuQ
拡張関数の中での this はその関数を呼び出したクラスのインスタンスになっているわけだが、
その拡張関数の中で object を作った場合はそのクラス内からはどうやってアクセスするのか?
this を使うと object のインスタンスになってしまう。かといって this@拡張関数のクラス にしてもできない。

例えばこれ。

fun String.hogeIterator() = object : Iterator<String> {
 override fun hasNext(): Boolean { .... }
 override fun next(): String {
  /* ここでは substring() 等の拡張関数がアクセスしているインスタンスのメソッドを使えるが
   * this@String はコンパイル時に unresolved reference: @String になって使えない。
   * もちろん this は object を指すので使えない。
   */
 }
}
224デフォルトの名無しさん
垢版 |
2020/08/10(月) 16:08:45.69ID:wInlBSoO
fun().this(hoge)
みたいな呼び方出来なかったっけ
225デフォルトの名無しさん
垢版 |
2020/08/10(月) 16:16:22.91ID:Z7zFlWuQ
>>224
ありがとう。 this@hogeIterator でできた。
this@拡張関数名 ということだった。
2020/08/18(火) 21:33:59.72ID:Bu1YqqeU
品質とパフォーマンスに注力した Kotlin 1.4 をリリースしました
https://blog.jetbrains.com/ja/kotlin/2020/08/kotlin-1-4-released-with-a-focus-on-quality-and-performance-ja/
2020/08/19(水) 12:59:25.07ID:q7vq4u1o
>>226
おめでとうございます!
228デフォルトの名無しさん
垢版 |
2020/08/21(金) 19:44:31.50ID:T2XB7xYy
まだ違いがわからない
2020/08/22(土) 07:19:26.47ID:75ogR6/b
kotlin/nativeがおもちゃじゃなくなるのはいつなんや。。
2020/08/22(土) 18:48:47.15ID:A1+CrrR8
全ての言語は俺のおもちゃ
2020/08/22(土) 20:19:04.45ID:blnrJHVK
ちょっとダガログ語で遊んでみて
2020/08/22(土) 21:48:01.83ID:uWLyeHjr
Puwede bang maglaro dito?
2020/08/23(日) 14:01:21.81ID:kDgpNyWc
if式をネストさせる場合、内側のif式ないで早期returnしたいんですがどうすればいいんでしょうか??
val hoge = if (条件) {
 if (条件1)
return hoge値3 <- ここで早期returnで値を返したい
 hoge値2
} else
 hoge値1
内側のifをif elseにもっていけばいいのはわかるんですが、
その後、もっとifの早期returnがたくさんあって・・
2020/08/23(日) 14:02:04.28ID:kDgpNyWc
var hoge = if (条件) {
 if (条件)
  return hoge値3 <- ここで早期returnで値を返したい
 hoge値2
} else
 hoge値1
2020/08/23(日) 14:34:14.58ID:MgEpWwVh
無理にifの戻り値を使わなければよいのでは?
if (条件)
hoge = hoge値3

もしくは
if (条件) {
if (条件)
hoge値3
else
hoge値2
} else {
hoge値1
}
2020/08/23(日) 15:24:28.03ID:kDgpNyWc
うーん。なんかごめんなさい
わけわからないこだわりでしたね・・
おとなしくif else使っときます
2020/08/23(日) 16:10:34.01ID:BgU0kmJc
とりあえずベタで書いて放置
3日後に改めて見ると最適化出来る時あるよね
調子に乗ると思わぬ結果でバグるけど
238デフォルトの名無しさん
垢版 |
2020/08/24(月) 04:02:39.41ID:8Ar+AlN+
>>233
あれ?それ出来なかったっけ?
2020/08/24(月) 06:52:54.71ID:5ZrVz87G
ifもラベルつけられた気がするから余裕でできるんでね?
ただそもそもクソコードの香りがプンプンするから、そもそもその部分は別メソッドに切り出すしたほうが良いと直感がいってる
240デフォルトの名無しさん
垢版 |
2020/08/25(火) 03:35:59.04ID:FtyQX/H1
そもそも >>234 は何をやりたいのか? return 書いたら普通にそのメソッドから return しない?
そうではなくて変数 hoge に hoge値3 を代入させたいの? だったら return じゃなくて普通に else 書いてやれば良いだけだし、
それではブロックが巨大で見辛いというのであれば別にメソッド作って外に出せば?
2020/08/25(火) 07:21:25.63ID:foaBkBNu
>>240
それ質問者の自省と>>239の良回答を言い直しただけじゃね?
2020/08/25(火) 07:53:18.31ID:RPvgPVWb
>>233です
でも元からそこまででかくなかったです
if (条件1)
 値1 <- 1行
else if (条件2)
 値2 <- メソッド呼び出しの1行
else if (条件3)
 値3 <- メソッド呼び出しの1行
else {
 //
 // <- 13行くらい
 //
 値4 
}
else ifでやると1行、1行、1行、13行くらいで、すげぇ尻だけでかだったので気になったのです
で、とりあえず、最後の13行を一つ別にメソッドに追い出して、最後を4行にもっていけました
2020/08/25(火) 07:58:14.54ID:RPvgPVWb
でも、正直、このレベルだったので、if文で早期returnできた方がいいし13行くらいはそのまま書きたいですね
2020/08/25(火) 08:03:18.20ID:OtGEs4k+
>>243
メソッドとして切り出すかどうかの判断は行数よりもそのコードの意味の単位を基準にするといいよ
2020/08/25(火) 08:06:41.76ID:OtGEs4k+
すごい抽象的な言い方しちゃったごめん
わかりやすいやり方だと、その処理で何をやってるかをそのままメソッド名にすれば分かりやすい

例えばgetNameAndSaveName()みたいになるならこれはgetとsaveに分けるべきだと明らかにわかる
2020/08/25(火) 08:09:57.72ID:/wlWzg6J
whenの方がいいな
AndroidStudioも警告出してないか
2020/08/25(火) 08:24:01.90ID:RPvgPVWb
android studioで警告はでてないですね
whenも考えたのですが、なんかどうもまだしっくりこなくて使ってません
もちろん、when (式) {}形式は使いますが、
when { bool式 ->, bool式 -> , else -> }このタイプは・・
2020/08/25(火) 08:33:07.94ID:RPvgPVWb
>>244
もちろん、そうですけど
再利用されるならまだしも>>242のifを含むメソッド自体も>>242含めて、計30行くらいだったので
そこまで頑張って外に追い出してと思った次第です
そこは自分の適当なバランス感覚でやってます
2020/08/25(火) 08:35:01.36ID:RPvgPVWb
*そこまで頑張って外に追い出してもと思った次第です
2020/08/30(日) 08:25:50.36ID:yOhH+mxx
Kotlin派のお前らはKotlin以外にどんな言語に興味あるの?
2020/08/30(日) 08:53:04.67ID:iVwpT6se
>>250
java 読めたらいい
swift iPhone向けも
C++ NDK
C♯ Unity
2020/08/30(日) 11:54:12.41ID:vjTKHF/s
>>251
サンクス。やっぱKotlinの人はスマホが多いのかね。
サーバーサイドだとみんな他に何使ってるんだろう。
まだまだRails多いのかな
2020/08/30(日) 12:27:06.28ID:bk9ybW3K
うちはJava/SpringBootからKotlin/SpringBootにした
サーバーサイドKotlinはJavaからの移行組が結構多いんじゃないかと思う
次にやるならやっぱりGoかなと思う
2020/08/30(日) 12:35:38.68ID:fDI7uJsO
Goって糞じゃね
なんで2020のいまどきポインタとか使わないといけないんだよ
スライスもなんか微妙やし
railsみたいに色んな便利機能が最初からないのも糞
大体Google自体もWebアプリ向けに作ったというより
C言語代替を目的に作ったんじゃないの
2020/08/30(日) 13:06:57.56ID:bk9ybW3K
>>254
全くその通りでGoはホント糞だと思う
でもFargate/マイクロサービス構成にした時にJVMが積み上がってメモリキツキツもつらい
Goの代替としてKotlin/Nativeに期待してたけど全然完成しないし、
Rustも入門してみたけど開発メンバ全員でこれをやるのは無理だなと思った。
なのでマイクロサービスやるんなら選択肢はGoしかないのかなって思ってる
2020/08/30(日) 13:20:08.16ID:5iQunAT3
気の利いた機能は排除する代わりに
アホでも書けるように設計してるんだろうな
分かってる人にとっては使うとイライラする
2020/08/30(日) 13:22:05.33ID:yOhH+mxx
GoとKotlinは使い所が違うわなー
Goはまさにマイクロサービス向きで、Spring Bootで作るようなものにはまったく向いてない
2020/08/30(日) 13:23:00.30ID:yOhH+mxx
そう思うとJava、というかSpringはほんとよくできてる
2020/08/30(日) 14:25:06.58ID:bk9ybW3K
jetbrainsがさっさとJSとかモバイルを諦めて、
Kotlin/Native(完成版) + SummerBoot(SpringBootのKotlin/Native版)を
出してくれたら俺のモヤモヤは全部解消する
260デフォルトの名無しさん
垢版 |
2020/08/30(日) 14:41:42.24ID:Kgnw5LZN
Goの何が駄目といって名前がほんとうにクソ
2020/08/30(日) 15:29:22.80ID:fDI7uJsO
検索キーワード入れる度にぶちきれる
2020/08/31(月) 16:31:33.81ID:1OYiF1fv
>>255
迷走しすぎ
2020/08/31(月) 20:15:30.87ID:oyY7zoql
>>262
もっといいのあるん?
2020/08/31(月) 20:24:10.88ID:BQ9c+OGL
C#
2020/08/31(月) 22:28:16.28ID:o9UB16MR
GoでマイクロサービスするならfargateよりもGAEの方が良いよ
fargateというかAWS自体重厚すぎる
266デフォルトの名無しさん
垢版 |
2020/09/01(火) 13:49:50.85ID:HPYjIMXq
>>255
同意
2020/09/03(木) 01:24:44.12ID:/jT+DP04
Goはこの時代に作ってなんやこのクソ言語ってなるのに使いどころあるところが、良くわかってるんだよなぁ
2020/09/03(木) 11:44:56.18ID:bck6w86S
Goはせめてジェネリック対応してくれ
ジェネリックもない言語とか今どきアホか、としか思わん
2020/09/03(木) 12:44:23.73ID:Uua/pugj
>>267
わかる。好き嫌いでいえば嫌いだけど実用性は認めざるを得ない。
2020/09/04(金) 10:54:31.12ID:BpK2cgTn
モノリシックに作ったサービスを売れてきた段階でマイクロサービス化できるのが真の理想
現状それはGoでもKotlin/JVMでもやりづらい
なので、みんなもっとKotlin/Native&SpringBoot的なFWに期待しようぜ
2020/09/06(日) 00:31:01.15ID:vV14JvOS
サーバーサイドだけどKtor使ってるよ
2020/09/12(土) 20:57:55.93ID:cg167TCE
>>271
kotlin/nativeで?
273デフォルトの名無しさん
垢版 |
2020/09/16(水) 20:47:09.88ID:lj6HLAl6
そうか。じゃあそろそろGoの学習でもするか。
2020/09/18(金) 09:08:48.16ID:Ms50MueV
KtorってNativeで動くの?
275デフォルトの名無しさん
垢版 |
2020/09/19(土) 02:20:24.71ID:Vwp+/AeQ
ネイティブやるならrustの方が良くない?
kotlinの存在意義ってjavaのライブラリが利用できる事だと思ってた。
276デフォルトの名無しさん
垢版 |
2020/09/19(土) 16:43:04.49ID:HLFklpM8
JAVAのライブラリと互換性のあるネイティブのライブラリは作りやすいのではないかな
277デフォルトの名無しさん
垢版 |
2020/09/19(土) 16:52:33.54ID:Vwp+/AeQ
なるほど。
2020/09/19(土) 17:44:18.38ID:cAF7RylC
オラクルの訴訟の関係で、Javaライブラリの互換ライブラリは、今は誰もやろうとしないだろう
2020/09/19(土) 18:01:31.14ID:IB/705pp
Javaなんて覚えるんじゃなかった。
2020/09/20(日) 11:04:20.31ID:j6P8qNS0
>>275
Java資産を使わないならあんまり旨味ないよな
281デフォルトの名無しさん
垢版 |
2020/09/24(木) 21:05:14.57ID:UuOLxhHX
ま、今のところはな・・・
2020/09/24(木) 21:13:03.51ID:5nw0kH4E
ExposedもJava依存してるしなー
2020/09/28(月) 11:21:26.40ID:WOjmua0O
Oracleって関わるものすべてダメにするよな
2020/10/11(日) 15:27:38.72ID:PQG6fOjE
gradleはkotlin dslでも何の不都合もないの?
2020/10/12(月) 20:09:38.21ID:3myqygF8
次のプロジェクトのサーバーサイドを
kotlinにするかgoにするかで揉めとる。
goってそんなにいいの?
2020/10/12(月) 20:51:58.16ID:PPv56FHl
その2つで揉めることある?
どんな性質のものを作るかで自ずと決まりそうだけど
2020/10/12(月) 21:58:37.67ID:79wpd4KS
goは糞
今時ポインタとかさわりたくねえわ
2020/10/12(月) 23:40:50.80ID:eFX4wIRa
>>284
少し前まではsyntax heighlightが効かなかったりしていたけど、
今ではgroovyで書くときよりIntelliJの補完やIntelliSenseがよく機能していると思う。
2020/10/13(火) 01:13:41.51ID:guvdtf8r
goは何が糞といって名前が糞すぎ
なんだよ、goって
2020/10/13(火) 08:15:37.13ID:HL5BBdJ/
goでググりにくい
ググラビリティが低い
2020/10/13(火) 08:20:05.71ID:ZNus3TRK
goとこちょりんで揉めるのがどういう状況なのか想像できない
何を作ろうとしてるんだよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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