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/
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勝ったんだってな
2021/04/29(木) 12:43:05.79ID:4WSvW7CU
そういやって、まさにその話をしてたのよ
2021/04/29(木) 15:00:25.41ID:FUMq3MLC
時の狭間に閉じ込められたKotlinian
605デフォルトの名無しさん
垢版 |
2021/04/29(木) 17:14:07.55ID:YN7Pg05+
コピペか
2021/04/29(木) 19:53:08.60ID:ABMysKhC
そういやOracleとGoogleで争ってたAndroidのJavaの件はGoogle勝ったんだってな
2021/04/29(木) 20:16:08.52ID:49K3ujd3
そういやって、まちにその話をしたてのよ
2021/04/29(木) 23:03:40.63ID:gAx7nA8j
おいデータが微妙に壊れてるぞ
609デフォルトの名無しさん
垢版 |
2021/04/30(金) 19:45:36.51ID:m/tHuDzV
そういえば「ち」と「さ」は反転した文字みたいなんだよな。
https://animalive.me/play/read-behind-left-brain
610デフォルトの名無しさん
垢版 |
2021/04/30(金) 19:48:36.30ID:m/tHuDzV
おまけ
https://kent446.exblog.jp/10762054/
https://bokete.jp/boke/62455501
611デフォルトの名無しさん
垢版 |
2021/05/03(月) 03:50:23.45ID:UFgXt23Q
今日ハマッたこと

IntelliJ IDEA で Kotlin の Coroutine のプログラムを作って試そうと思い、ネットで調べて
そのままではできず、 build.gradle.kts の dipendencies の所に implementation(...) で
追加するライブラリを書かねばならないと分かり、追加した。その後簡単なプログラムを
入力しコンパイルしたがエラーになる。そう言えば runBlocking がずっと赤いままで、
IntelliJ IDEA 側にはそれがあるとは分かっていない模様。しかし build.gradle.kts は
ちゃんと書いたし何がおかしいか分からない。

↓ 8時間後

build.gradle.kts を編集すると右上に薄っすらボタンのようなものが現れていることに気付く。
それ押すと build.gradle.kts の内容が反映されて外部ライブラリが追加されコンパイルも成功。

なんだよこれw 分かり辛すぎだろw

ていうかネットで検索しても誰もこのこと書いてないのは何故だ?たまたま見つからなかっただけ?
それとも当たり前過ぎる話なのか?しかしこれかなり重要なことだろ。編集しないと現れない幻の
ボタンって。
2021/05/03(月) 04:02:34.27ID:cEz/5a4b
サーバーサイドKotlinか?
AndroidStudioでやらないからそうなる
613デフォルトの名無しさん
垢版 |
2021/05/03(月) 04:32:44.33ID:UFgXt23Q
>>612
AndroidStudio だとやらなくて良いの?
それとも最初からデフォルトでコルーチン使えるようになってるとか?
614デフォルトの名無しさん
垢版 |
2021/05/03(月) 04:34:09.34ID:UFgXt23Q
てか、 build.gradle.kts を編集したらあのボタン押さないと反映されないのは同じだよね?
2021/05/03(月) 06:47:14.30ID:JnqbaBph
AndroidStudioでAndroidのKotlinでbuild.gradleだと、編集したら目立つ色で通知が出る
「Gradle files have changed since last project sync. Aproject sync may be necessary for the IDE to work properly.」
右にSync NowとIgnore these changeが出るんで、Sync Now 押せば反映される
2021/05/03(月) 07:14:10.43ID:JnqbaBph
IntelljIDEA2021.1.1でbuild.gradleとbuild.gradle.ktsのkotlinプロジェクト作ってみたよ
上記の通知の表示方法が変わって変なとこに象さんクルクルのアイコンが表示されるようになってるね
たぶん2021バージョンで変更された新しい表示なんだと思われる

今まで使ってた奴からすると、何だこれって感じでカーソルのせてみてSyncNowの代わりにこれ押せばいいとわかるから迷わない
ネットに情報が出てないのは、これに引っかかるのはホントの初心者だけだからじゃないかな

AndroidStudioも将来はこの表示になる可能性が高い
2021/05/03(月) 07:29:34.93ID:4J8x1DcD
Androidで使うのが一般的なのにイキって
IntellijIdeaなんかでやるから天罰が下るんだ
2021/05/03(月) 08:23:58.65ID:mwXEGGMB
>>611
普通にgradleタブのぐるぐる押せばいいのに
まずgradle使わないでどうやって実行しようとしたんだ
2021/05/03(月) 08:27:51.53ID:CCI0+edQ
intellijのスプラッシュが気持ち悪い
早く変わってくれ
620デフォルトの名無しさん
垢版 |
2021/05/03(月) 16:57:39.14ID:UFgXt23Q
>>616
初心者というか、IntelliJ IDEA の初心者だな。
エディタを横に大きく広げていたのと白に近い灰色で表示されて気付かなかった感じだな。
色の問題もあるかな。

>>617
なんでこれでイキってることになるのか?w
Kotlinそのものの学習なら要らんだろう。Android開発部分は後から追加できるようだし。

>>618
なんだそれと思ってよく見たら右にGradleって出ててそれ押すと出てくるやつか。
これもよく見ないと発見できない "秘密のボタン" じゃねえかw
まるで昔のアドベンチャーゲームやってるかのようだ。
2021/05/03(月) 17:09:28.56ID:WPoIRVmP
イキりポンチの童貞野郎が
2021/05/03(月) 17:25:07.75ID:wIRNyzo+
勃つだけましさ
2021/05/03(月) 17:42:09.79ID:APFHCyDf
なんでもすぐイキってるとか言っちゃう子はそんなに他人や世間が怖いのかなと心配になる
もっと自由でええんやで
2021/05/04(火) 07:32:05.47ID:7jJ3nkV3
>>619
わかる
2021/05/04(火) 15:42:18.39ID:EqUn5+/6
何らかのmap関連APIで、ある地点AとBを結ぶ経路を表示することはできると思う
そこからさらに、100mなどの距離を与えてスタート地点AからB地点へ
100m歩いた軌跡を表示することは可能ですか
626デフォルトの名無しさん
垢版 |
2021/05/06(木) 04:27:55.32ID:ajjDZVcw
質問の意味が分からないが、もしやAndroidの質問?
だったらAndroidのスレがあったと思うのでそっちで聞いた方がいいと思う。
627デフォルトの名無しさん
垢版 |
2021/05/06(木) 05:53:58.45ID:MxQkcaBR
あわしろ氏もアカン言うてましたわ。
2021/05/06(木) 08:05:00.82ID:xWxV6AXf
あわしろ氏誰やねんヽ(`Д´)ノ
2021/05/06(木) 18:43:39.58ID:ofNdXnYQ
>>625
それはKotlinでもAndroidでもなく使うマップの仕様によるだろう。
スタート地点+距離を受け付けるAPIがあるならできるし、ないならできない。
2021/05/06(木) 20:50:47.13ID:Ta5pc6Qz
そういうAPIがあるのかどうかを調べて来いよ
631デフォルトの名無しさん
垢版 |
2021/05/07(金) 01:37:38.13ID:4k6XqTcw
お! 1.5 出てた。
2021/05/07(金) 10:08:30.66ID:dF0LJIle
1.5はパッとしないな
2021/05/07(金) 14:02:08.44ID:Mo+Zp2+Z
パッとしてから来いよ
2021/05/07(金) 14:37:33.61ID:pvRHeq5B
ハッとして グッときて
パッと目覚める Kotlinだから
2021/05/07(金) 19:44:58.77ID:kPylSr38
inline class最高
2021/05/08(土) 06:09:46.75ID:BZJBNPxd
>>632
Javaと同じくローリングリリースになったからな。
パッとしなくてもスケジュールが優先でリリースされる。
2021/05/08(土) 09:03:32.71ID:OwFy1u/b
ハッとして グッときて
パッと目覚める Kotlinだから
2021/05/08(土) 20:34:47.27ID:3jxsjvDZ
>>634
は天才だと思う
639デフォルトの名無しさん
垢版 |
2021/05/15(土) 23:36:32.32ID:d+8scdvN
俺は今頃 Compose for Desktop というものがあることを知った。
2021/05/15(土) 23:43:23.67ID:tihXB0Cj
Kotlin使ってるやつ仕事でどんなもの作ってるの?
2021/05/15(土) 23:44:20.12ID:amksdPdW
なんでコードでレイアウト実装したいと思うの
レイアウトはXMLに分離することで可読性を上げたいということでそうしたんじゃないの
2021/05/16(日) 01:02:22.08ID:/lNEC7FM
ひさしぶりにKotlinでコードを書く機会があったが
意外と悪くない
残念なのはこれがほとんどAndroidのアプリ開発でしか使われていないことだ・・
2021/05/16(日) 05:39:12.20ID:et9DNQD4
>>641
XMLはわりと嫌われているからね
みんながXML大好きならJSONやYAMLなんかが今みたいに流行ることはなかっただろう

そういうXML嫌いな一派に内部DSL好きな人達がいる
rubyとかから流れてきた人達かな
kotlinは言語仕様の決定に内部DSLの書きやすさが考慮されていたりして、その内部DSL好きの意見が多く取り入れられてる
なのでレイアウトも内部DSLでやろうという話がでてくる
2021/05/16(日) 05:41:08.95ID:et9DNQD4
コードそのものじゃなくて、内部DSLを使えば可読性は向上するという考えだね
XMLを使わなくても
2021/05/16(日) 05:42:02.78ID:5m7n3cRq
センスねえ一派だな
2021/05/16(日) 06:04:05.36ID:rlnJSKha
jsonは末尾カンマがあるだけで壊れるの嫌い
2021/05/16(日) 08:33:52.08ID:et9DNQD4
いまはJSON言っても末尾カンマやコメント可能な拡張されたJSONを
設定ファイルに使えるでしょ
VSCodeとか
2021/05/16(日) 14:11:03.42ID:xkWHIivX
jsonc? json5?
2021/05/16(日) 15:14:10.16ID:OjO2sknJ
レイアウトをコードで書く流れなのはKotlin関係ないけどな
650デフォルトの名無しさん
垢版 |
2021/05/16(日) 16:09:18.42ID:bjgpsQdf
ちょっと違う話だが、 IntelliJ IDEA で新規プロジェクトを作る時に Ktor の所は後ろにカッコつきで Obsolete ってなってんだけど、Ktor って廃止される予定なの?
2021/05/16(日) 17:32:42.39ID:et9DNQD4
>>650
Ktorのプラグインが新しくなったんじゃないかな
旧プラグイン1.5.1-obsolateと1.5.3は別のプラグインとしてインストールするようになってるように見える
新規プロジェクトの前に新しい方のプラグインインをストールすればobsolate無しのKtorが選択できると思う
2021/05/17(月) 14:53:16.95ID:DZwTmI3K
>>651
なるほど。プラグインだけか。

と思ってアップデートしようとしたが obsolete のやつしか出て来ない。
おかしいなと思って JetBrain のサイトで検索したら出てきたが、 Community はサポートしていなかった。Ultimate だけだった。
2021/05/17(月) 14:57:10.60ID:DZwTmI3K
それでも無理矢理ダウンロードしてZIPファイルからインストールするとこれが出て動かない。

プラグイン 'Ktor' はプラグイン 'com.intellij.microservices.uast' をインストールすることを要求しています

まあいいか。plugin使えなくても。
2021/05/17(月) 18:23:09.35ID:gVJDEHq4
質問1
Android studioのkotlin使ってるんやけどカレントディレクトリってどうやって取得すればいい?

System.getProperty(”user.dir”)
でも
Path.get(””).toAbsolutePath().toString()
でも/としか表示されへん

質問2
カレントディレクトリに有るファイルの場合はファイル名だけ指定したらjava.io.Fileを使ってファイル名だけでディレクトリの指定なしに操作できる?
2021/05/17(月) 18:32:44.93ID:zF1a9+57
ktorのプラグインって廃止されてバンドルになったんじゃなかったっけ
2021/05/17(月) 23:50:52.56ID:AWM7Ajza
>>654
アプリのプロセスのカレントディレクトリがルートディレクトリなんだろ
もちろんルートディレクトリに対する読み書き権限は無いはず

アプリがデフォルトで読み書きできるディレクトリはこの辺
https://developer.android.com/training/data-storage/app-specific?hl=ja

Fileクラスのコンストラクタはカレントディレクトリからの相対指定パスをしてもいいはずだけど、
アプリのプロセスのカレントディレクトリを勝手に変更していいかどうかは知らん
2021/05/18(火) 08:12:00.56ID:vup8yESh
>>654
そもそも何がしたくてカレントディレクトリを取得したいん?
直感だけど、根本的にあまりやらない方がいいことをしようとしている気がする
658デフォルトの名無しさん
垢版 |
2021/05/18(火) 09:52:29.38ID:1yVusvif
Javaってカレントディレクトリ変更できないしあまりあてにしない方がいいよね。同じようにJVMでJavaのライブラリ使って動くKotlinも同じ。
(nativeとか他のは別として)
2021/05/18(火) 10:27:28.65ID:lmZGxPtq
ファイルを操作したいならカレントディレクトリは使わずに環境変数なりなんなりで絶対パスを指定して、そこを利用した方が良いと思う
2021/05/18(火) 23:37:04.25ID:AEI9A+tv
>>659
やと、アプリ専用のフォルダーを勝手につくっちゃうってこと?
アプリを内部にするか外部に保存するかわからんくない?
2021/05/19(水) 07:55:59.28ID:iIq+id16
アプリと一緒にデータファイル配布して、アプリからそれを読み込もうとしているとかか?
2021/05/19(水) 17:49:44.81ID:u4xdB3FO
>>661
そのパターン
データ保存したいねん
2021/05/19(水) 18:10:25.10ID:iIq+id16
配布したいのか、保存したいのか
保存したいのなら>>656のリンクを見ろ
配布したいのなら簡単なのはリソースに含めるとか
配布したファイルへ保存はやったらダメ
2021/05/21(金) 13:20:22.19ID:7dyiFiD+
>>662
保存と配布どっちだよ。
2021/05/21(金) 14:32:48.76ID:II2P4TIk
>>664
保存!
2021/05/21(金) 17:54:11.01ID:7dyiFiD+
>>665
それなら>>656のリンク見てそこに書き込みな。
Androidはアプリごとに書き込んでいい場所が用意されてるから。
2021/06/20(日) 13:56:59.50ID:DRMed2ub
kotlinのfirsrOrNullの検索効率ってどんな感じなんすか
Javaで2重ループで検索とかすると計算処理を削減するために工夫したりするんだけど
firstOrNullはそういうこと気にしなくてもいんすか
2021/06/20(日) 14:21:44.30ID:KYXAfitG
二重ループで検索てのが何かよくわからないけど、firstornullは上から順番に一致するものを探してるだけだよ。
高速な検索が必要ならハッシュテーブルとか二分探索とか検討すれば
669デフォルトの名無しさん
垢版 |
2021/06/22(火) 08:51:41.24ID:Xn56/PVc
kotlinはまだ5年は安泰かね
2021/06/22(火) 14:12:00.49ID:jX4OI0Ca
簡素に書けるからプログラム入門者向けというわけではないな
慣れるとコード量が減って読み書きの時間短縮になるが、知らないと直感的に理解できないデメリットのほうが大きい
プロ向けの言語だと思うわ
671デフォルトの名無しさん
垢版 |
2021/06/23(水) 19:20:52.36ID:64YJsdY1
>>667
下の方に実装が書いてある。物凄く単純。forで先頭から見てるだけ。
https://qiita.com/tkhskt/items/fb15c6b9d9cf30f4ea26
672デフォルトの名無しさん
垢版 |
2021/06/29(火) 15:16:07.90ID:iGYT4fi4
もうすぐ Kotlin 10周年だな。
WikipediaのKotlinのページ見たら2011年7月20日に発表されたって書いてあった。
2021/07/08(木) 20:57:16.04ID:+vWLj3Me
ロゴが変わっただけかい
674デフォルトの名無しさん
垢版 |
2021/07/09(金) 02:49:07.06ID:HAPzR3Cs
kotlin.ranges.ClosedFloatingPointRange の lessThanOrEquals() メソッドって a <= b やってるのと同じだと思うんだが、どういう時に使う事を想定してわざわざ abstract で定義されてるの?
a <= b の結果を返す実装をしない場合向け? しかし ClosedFloatingPointRange のインスタンスでやれるようにする理由がわからない。
2021/07/09(金) 02:58:02.94ID:HAPzR3Cs
ソース見ても ClosedFloatingPointRange<Double>, ClosedFloatingPointRange<Float> 共に lessThanOrEquals() は a <= b 返してるだけ。
https://github.com/JetBrains/kotlin/blob/80cce1dc5280eb9135390270c8644a7b8d198071/libraries/stdlib/src/kotlin/ranges/Ranges.kt
676デフォルトの名無しさん
垢版 |
2021/07/10(土) 15:45:19.22ID:jbIVp5r2
誰も答える事が出来ない、か・・・
2021/07/10(土) 17:29:16.75ID:CuVl6tH2
浮動小数点 比較 でググれカス
2021/07/11(日) 00:30:54.29ID:98wTdhzr
勘だけどcompareToで実装した場合BoxingとUnboxingが発生するからとか?
2021/07/11(日) 01:58:02.78ID:xDCJE6De
何の話かとソースを見たら簡単なことだった
抽象クラスでcontainsやisEmptyをテンプレートパターンで提供するために使ってるじゃん
680デフォルトの名無しさん
垢版 |
2021/07/11(日) 02:18:18.60ID:cP82I2qM
>>677
で?ググったが、君が何を言いたいのか全く分からない。

>>678
Kotlin はプリミティブ型はないから Boxing, Unboxing の概念自体がないよ。
もちろんコンパイラは最適化して内部的にはやっているコードを作るだろうけどね。
かといってそれで動作が変わる事はない。
それと Kotlin は <= 演算子は compareTo() 使うように置き換えられるだけだ。
681デフォルトの名無しさん
垢版 |
2021/07/11(日) 02:27:45.13ID:cP82I2qM
>>679
lessThanOrEquals() メソッドを用意する意味は? 何のために必要なの? どういう時に使うの?
このクラスのインスタンスを通さずに a <= b と書いても同じなんだけど、そう書かない方が良い場合やそう書けない場合があるの?
2021/07/11(日) 02:29:55.56ID:xDCJE6De
>>681
外から使わせたい意図なんじゃなくて中でもう使ってるんだよ
683デフォルトの名無しさん
垢版 |
2021/07/11(日) 02:50:03.62ID:cP82I2qM
>>682
ああ。ソースの上の方の interface の所で使ってるこれか。
上の方見てなかった。ClosedDoubleRange とかの実装部分では全て override してるから気付かなかった。
2021/07/11(日) 03:36:10.64ID:1PXH7bmD
>>679
ClosedFloatingPointRangeはClosedRangeを継承してて、ClosedRangeはcontainsとisEmptyを不等号演算子で実装してるのに、
なんでそれをlessThanOrEqualsを使ったものにoverrideしてるのは何故なんだぜ
ClosedFloatingPointRangeのComparable<T>はoperatorのcompareToを実装してるから不等号演算子使えるはずだろ
2021/07/11(日) 15:03:50.18ID:turdcYIy
>>684
不等号演算子ではIEEE754の定める順序が厳密に実装できないからじゃね?
正負の0をどう順序付けるかとか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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