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/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をどう順序付けるかとか
2021/07/11(日) 22:32:15.75ID:oapAt03e
標準の実装だと0.1を10回足した結果が1.0..2.0の範囲外になるからな
2021/07/12(月) 01:19:08.25ID:LR2Kyv8n
>>676
教えてあげても理解できない、か・・・
688デフォルトの名無しさん
垢版 |
2021/07/12(月) 04:26:13.64ID:Stykbknw
>>687
君はどこで教えてるの?
2021/07/12(月) 07:34:03.09ID:4Smn+TRk
Androidアプリ開発始めようと思うんだけど、いきなりKotlinの勉強初めて大丈夫?
JAVAの入門書1冊くらい目を通しておいた方がいいかな
HTMLとCSSはわかる
昔やさしいCを一通り読んだり、ドットインストールのPHPのとこを見た程度で、まともなプログラミング経験はないんだけど…
2021/07/12(月) 07:45:25.78ID:0kBd/ns6
別に問題ないけどandroidの開発はUIを作る部分は今はjetpack composeという新しい
フレームワークが登場しようとしてる時期だからな
今までのやり方を勉強するかjetpack composeを勉強するかそこが悩ましいところ

kotlinのところは共通だから問題ないが

javaは必要になったらその都度調べるでいいんじゃ
2021/07/12(月) 07:47:46.13ID:0kBd/ns6
なにより動機が大切
作りたいアプリがあるとかあれば完遂できる高くなると思う
2021/07/12(月) 10:29:21.39ID:CpHcNeNq
composeは糞、流行るわけない
元々ロジックとデザインが混在してカオスだったのをうまく分離した歴史があるのに
なんでまた混在させようとしてるんだ
コードが見にくくなるだけセンスねえな
693デフォルトの名無しさん
垢版 |
2021/07/12(月) 19:41:43.02ID:Stykbknw
流行って貰いたいものが流行らず、流行って貰いたくないものが流行る。
世の中とはそういうものだ。
2021/07/12(月) 20:38:10.01ID:bBJu0B3I
本質的に結合しているものを分離すると逆に分かりにくくなるんやで
Web の HTML, CSS, JavaScript を1ファイルでコンポーネント化するようなもん

関心の分離っていってな、関心の単位で分離すべきであって言語とか拡張子といった技術で分離すべきではないんねん
2021/07/12(月) 20:46:21.89ID:CpHcNeNq
main関数のみで全処理書いてろ
2021/07/12(月) 22:47:29.20ID:4Smn+TRk
>>690
ありがとう、いきなりKotlinでいくことにする
作りたいアプリがいくつかあるから動機の点では問題ないと思う
2021/07/13(火) 16:16:13.48ID:NjYyHmnM
KotlinをマスターすればJAVAを学ぶのも楽になったりする?
2021/07/13(火) 17:42:26.07ID:0X+PqoEr
Korlinから入るとJavaがダルすぎるだろうな
2021/07/13(火) 18:05:59.24ID:ugiVX/de
Kotlinは概ねJavaのスーパーセットだから、Kotlinをマスターすれば自動的にJavaもマスターしたことになる
逆に言えばJavaの知識は漏れなくKotlinで通用するので、言語の基礎からじっくり学びたいならJavaから入ったほうが効率はいい
2021/07/13(火) 18:51:54.36ID:72jyBhF5
オナシャス!
あしたー!
をマスターすれば
よろしくお願いします!
ありがとうございましたー!
をマスターしたことになるということか
2021/07/13(火) 19:14:12.59ID:hwqBl+H/
Javaが右手なら
KotlinはTENGA
2021/07/13(火) 19:34:54.40ID:QtVQwWW6
AndroidにおいてもはやJavaは古語
外人が日本語学ぶときに古文から勉強なんてしないでしょ
エスアイヤーに入ってサーバサイドJavaを書く予定でもない限り、Javaは無視してKotlinだけ勉強すれば充分だと思う
古典解読の必要に迫られてなければ極力関わらないほうがいい
2021/07/16(金) 20:27:24.69ID:fn0ZIWtp
いまだにkotlin見ないよ
2021/07/16(金) 20:28:12.10ID:fn0ZIWtp
Javaを代替するのかと思ったらぜんぜんそんなことないし
新しいもの好きはKotlinのかわりにPython使うありさま
どうなってん
2021/07/16(金) 20:59:39.71ID:daMSi7HO
お前がいけてないゴミ企業に勤めてるだけだろ
ああん?かかってこいよ
2021/07/16(金) 21:01:55.89ID:B3wJeb/i
スレに小学生が紛れ込んでます
2021/07/16(金) 21:03:40.72ID:ie4I3r9l
うーん、Androidならともかく、Pythonが比較対象になるってことはサーバーサイドだろ?
サーバーサイドでKotlinが採用されるのって基本的に環境にJVM縛りがある場合なわけで、その時点でイケてないと思うけどな
2021/07/16(金) 22:05:58.66ID:fn0ZIWtp
スマホに行くとあるのか?
2021/07/17(土) 09:22:49.55ID:zXxqlbp9
こういうやつが多いからこそ今のうちにKotlinをマスターしておく
2021/07/17(土) 14:11:07.80ID:IFwXDVuO
新しい物好きがpythonとな
711デフォルトの名無しさん
垢版 |
2021/07/18(日) 03:33:31.77ID:1LSo9w/B
>>704
Android のアプリ開発でもまだ Java を新規で使う?
712デフォルトの名無しさん
垢版 |
2021/07/22(木) 16:13:54.69ID:o3SPPMDQ
答えない、か・・・
2021/07/22(木) 16:16:46.94ID:Q+13QovN
知らんから
こっちが聞きたい
714デフォルトの名無しさん
垢版 |
2021/07/22(木) 16:32:59.94ID:o3SPPMDQ
>>704は「Javaを代替するのかと思ったらぜんぜんそんなことないし」と断定しているわけだが、
ぜんぜんそんなことないなんてことはないよな?
715デフォルトの名無しさん
垢版 |
2021/07/22(木) 16:41:36.41ID:o3SPPMDQ
まあしかし自分でどんどん使って自分で布教活動して自分が世界に流行らせようというぐらいの勢いが欲しいところではある。人として。
716デフォルトの名無しさん
垢版 |
2021/08/03(火) 19:28:53.26ID:pl6JBCXA
デルタの次はラムダだってよ
2021/08/04(水) 06:05:44.92ID:Px3vnVIJ
>>716
時代が追いついた?
2021/08/06(金) 16:48:30.34ID:pdMuy17Q
Int型だけ扱うならArrayよりIntArrayの方が速いってのはわかったんだけど
FloatArrayとかでも同じくArrayより速いの?
719デフォルトの名無しさん
垢版 |
2021/08/07(土) 03:43:00.44ID:efxonHum
速いんじゃないの?多分 Java の float[] になっているから。
2021/08/07(土) 03:48:28.66ID:SKzXKOLc
オーバーヘッドがボクシングにあるんだから当然じゃよ
類推できないならわかったというより覚えただけじゃな
2021/08/07(土) 17:38:52.49ID:s6dGlW/R
ボクシング???ググったらなんか出てきました…
読んで精進します
ありがとうございました
722デフォルトの名無しさん
垢版 |
2021/08/07(土) 18:43:36.70ID:efxonHum
boxing の「箱詰め」って意味の方だな。
殴り合いの方も囲まれた中に人を入れてやってるので何となく概念は同じかな。
723デフォルトの名無しさん
垢版 |
2021/08/08(日) 02:23:55.98ID:1NtvLxoY
ラムダが空港で検出されたってよ
2021/08/08(日) 07:12:24.73ID:zogiP73Y
ラムダが世界を支配して関数型プログラマー大勝利!!
そして、さらなる新型株により新しい時代の幕が開く。
2021/08/09(月) 04:25:12.65ID:hxwUAA35
jdkってコンパイル遅すぎない?ハローワールドだけで数秒かからないか?
2021/08/09(月) 13:48:04.32ID:bwkDBZAI
新しいのは早いらしいぞ
2021/08/10(火) 04:17:16.39ID:RT5RB9Hc
javac も JVM 上で動く一つの Java プログラムなので起動時に JVM の初期化で時間が掛かる。
2021/08/10(火) 18:23:05.29ID:JaPZtVcK
kotlinですごく単純なメモアプリ作ってるんだけどここで質問していいのかな?
2021/08/10(火) 18:27:04.30ID:+Y+PDhFJ
どうぞ
2021/08/10(火) 18:53:48.14ID:JaPZtVcK
https://dotup.org/uploda/dotup.org2557718.png
menuレイアウトにsave,deleteの二つを作ってんだけど
deleteボタンを押下したらデータを削除する機能を付けたいと思ってる
んで上図でclear()を追加したらできたんだけど、即時反映されない
clear()の後にcommit()を追加してみたけどダメだった
どうすりゃ即時反映できるんのですか?
2021/08/10(火) 20:10:37.27ID:BpNna49q
反映されないとはどういうことか
データが消えていないということか
732デフォルトの名無しさん
垢版 |
2021/08/10(火) 20:17:49.30ID:JaPZtVcK
deleteボタンを押してアプリを終了→再起動したらデータは消えてるので
おそらく画面が更新されていない?と思っています

てことは画面の更新処理を追加すればいいのかな⁉
2021/08/10(火) 20:24:53.23ID:c5407/+d
invalidateじゃね
2021/08/10(火) 21:34:50.13ID:JaPZtVcK
うーん
2021/08/10(火) 21:37:57.93ID:JaPZtVcK
invalidateはjavaの機能?頭が痛くなってきた...
2021/08/10(火) 22:49:50.41ID:0wKAWNP/
画面の更新処理書けばいいだけだろ
22行目で自分で更新処理かいてるんだから同じ事すればいいだけだろ
2021/08/10(火) 22:52:16.19ID:75HG6oSE
bindingよく知らないんだけど、onCreateでやってるbinding.textInputEdit.setText()は、deleteしたときにもやらないといけないんじゃないの?
2021/08/10(火) 22:52:57.09ID:75HG6oSE
かぶったわ
2021/08/10(火) 23:14:40.34ID:/YOKAAqz
すいません、風呂入って頭空っぽにしたらすんなり理解できました
binding.textInputEdit.setText("")
これ追加するだけでしたね、ありがとうございました
お騒がせしました
2021/08/12(木) 22:10:10.91ID:yUQmpKTY
手詰まりになったと思った時はだいたいそういう簡単なポカしてるものよ
風呂入ったり散歩したりすればだいたい解決する
2021/08/13(金) 01:08:57.45ID:EY++miAR
こんばんは
あれから機能追加してるんですけどまた行き詰ってます
また質問いいですか?
2021/08/13(金) 03:22:25.49ID:18U08+hI
AndroidならKotlin関係ないのでこちらで

Androidプログラミング質問スレ revision53
https://mevius.5ch.net/test/read.cgi/tech/1488362439/
2021/08/13(金) 06:51:20.74ID:EY++miAR
専用板あるんですね、ありがとうございます
そっち行きます、
2021/08/24(火) 04:58:32.11ID:78IJrgpA
>>710
年寄りが最近と言いつつ十年前の話を始めるのに似ているな
2021/08/24(火) 10:08:37.49ID:3yRIPy2m
いきことだったけどJava先にやった方が結局早い気がしてきた
2021/08/28(土) 17:04:58.34ID:HPaMnV06
「いきこと」という、俺の知らない日本語がまだあったのかと思い、ネットで検索して出てきたのがこれ。

https://ikikoto.com/
2021/08/28(土) 17:10:49.65ID:HPaMnV06
まあしかしこないだ本当に「しくはない」という言葉があることがわかって驚いたんだけどね。
最初見た時「惜しくはない」の「惜」が編集ミスで消えただけだと思ったが、文脈からして変だと思って検索して発覚。
2021/08/28(土) 18:39:25.65ID:QOe16O/J
百聞は一見に如かずという諺もあるし、そこまで聞かない言葉でもないような気がするけど。
2021/08/28(土) 21:09:01.00ID:jimgwps1
如くは無しは高校の漢文で習ってるはず
ゆとり世代はその限りではない
2021/08/29(日) 04:37:00.40ID:Lt7wAmk4
で、>>745の「いきこと」って何?間違えたとしても何をどう間違えたのか推測できない。文脈からも分からない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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