X



Kotlin 8
0007デフォルトの名無しさん
垢版 |
2023/01/04(水) 11:45:44.86ID:suU0/CSg
androidのフレームワークって難しいんですかね?
やさしいKotlin入門を読んでたら、Kotlinとフレームワークを一度に習得することは至難の業って書いてあった
0008デフォルトの名無しさん
垢版 |
2023/01/04(水) 18:14:25.02ID:XqZj7stm
>>7
UI操作だけならData binding使うから、別にC#使ったことあるなら普通に組める。
それ以外も基本的にはJSとかより簡単だと思うよ。
面倒なのはファイルアクセス系など、パーミッション必要な類。
0009デフォルトの名無しさん
垢版 |
2023/01/04(水) 19:07:19.87ID:sTAO5zEI
>>8
androidフレームワークと全く関係ない話してどうするの?

>>7
androidフレームワークは、ActivityとViewのライフサイクルの関係がややこしいくらい
AndroidX に関しては公式ドキュメントが常に最新で優秀だからそこ見れば解決する

Kotlin自体もスコープ関数や非同期処理が他言語と違うくらいかな
0010デフォルトの名無しさん
垢版 |
2023/01/04(水) 21:12:34.18ID:suU0/CSg
>>8
>>9
ありがとうございます
ボチボチやっていきます
Kotlin、なんかシンプルで直感的でいいですね
when の -> とか矢印にしか見えない w
0012デフォルトの名無しさん
垢版 |
2023/01/06(金) 10:56:24.13ID:1cP91HbG
Kotlinはあまり浸透しないうちに下降局面に入ったよな
0013デフォルトの名無しさん
垢版 |
2023/01/06(金) 10:59:06.89ID:iJnEnzeO
paizaラーニング、1チャプター5分くらいで見られるから空き時間に見るのにすごくいいんだけど、Kotlin編チャプター17までしか無いんだよね
Javaは充実してるのに…
0015デフォルトの名無しさん
垢版 |
2023/01/06(金) 11:19:44.26ID:fSmSJWW8
kotlin nativeって一応defer があるのな
中身はfinally {[呼び出し関数]} をやってるだけだけど
0017デフォルトの名無しさん
垢版 |
2023/01/06(金) 17:39:53.39ID:YIB2cDqh
造りたい桁数によるけど
とりあえず逆変換というか
ブルートフォース観たいに(ブラウザじゃなくてローカルなプログラムで)沢山生成して
その中に希望のものがあればそれのキーを遣えば簡単に実現出来る
0018デフォルトの名無しさん
垢版 |
2023/01/06(金) 21:26:47.30ID:zBH1ifb8
Kotlin ってGo とTypeScript の中間って感じだね

Goはコンパイル最速で、
TypeScriptはJavaScript互換でフロント最強、
対してKotlinはコンパイルが速いわけでもなく、Java の遺産を使えるくらいしか取り柄がない、フロントもモバイル開発はともかく、デスクトップアプリやウェブサイトでTypeScript を差し置いて選択する理由が無い

よってモバイル開発を超えて普及する見込みなし
0019デフォルトの名無しさん
垢版 |
2023/01/06(金) 22:33:21.03ID:iJnEnzeO
プログラムは完成しても多機種の検証が個人的に無理かな?と思い始めた
エミュレータがあるけどかなり時間を取られそうだし、他人に頼むとお金がかかる…
適当にリリースしてバグが出たら、低評価を付けられてバージョンアップするモチベーションを完全に無くしてしまいそう…
趣味に毛が生えた程度の技術を身に付けたいなら、windowsフリーソフト開発とかの方がいいでしょうか?
0021デフォルトの名無しさん
垢版 |
2023/01/06(金) 23:18:32.54ID:f1Ucnda3
>>19
特殊デバイス使うんじゃなければ機種なんて考えなくていいよ
対応SDKの一番古い奴と一番新しい奴で動けば大抵なんとかなる
androidstudioが警告してくれるし

そして技術っても広すぎるから
何か漠然とでもやりたいことが浮かんでるならそれをやれる環境を学べばいい
0022デフォルトの名無しさん
垢版 |
2023/01/06(金) 23:26:20.96ID:mnnpS3v5
使ってもらって低評価つけられるならまだ良いほうだよ
嫌いは好きに変換できるからね
使ってすらもらえない無関心を好きに変換させるほうが難しい
0023デフォルトの名無しさん
垢版 |
2023/01/07(土) 00:42:09.92ID:3z/XOEWR
>>21
>>22
そうですか
翻訳アプリを作りたいんですよね
自分が使いたいと思うような。
もう少し勉強を続けてみます
0024デフォルトの名無しさん
垢版 |
2023/01/08(日) 18:11:54.00ID:8x15uBZd
>>16
総当たりで探しただけでは?
「5ch トリップ 検索」でググるとそういうサイトがいくつか出てくるぞ。
0025デフォルトの名無しさん
垢版 |
2023/01/11(水) 10:38:48.37ID:8ImpuJOv
>>12
俺たちが使いまくって大流行させればいいじゃないか
0026デフォルトの名無しさん
垢版 |
2023/01/11(水) 14:25:07.46ID:RVo1l8pG
Kotlin が優れてるところの一つにGradle システムを使えることだと勝手に思ってる
0028デフォルトの名無しさん
垢版 |
2023/02/02(木) 22:06:06.60ID:g13/zsV1
JetBrainsってIntelliJ捨ててFleetっていうVS Codeのパクリに移行するつもりなんだろうか。
Fleetと心中するJetBrainsに巻きこまれてKotlinが沈没する未来しか見えない…
0029デフォルトの名無しさん
垢版 |
2023/02/02(木) 22:17:40.84ID:a9iRKKaw
実際のコードでも、変数の型ってきちんと宣言する必要があるの?
特に数値が、byte型、short型、Int型、Long型、Float型、Double型とか面倒なんだけど…
JavaScriptでは変数の型なんて宣言したこと無い…
0030デフォルトの名無しさん
垢版 |
2023/02/02(木) 22:28:02.28ID:/CNhb/p1
>>28
FleetってJetbrainsのSpaceありきでしょ
ローカルコーディングなら今までどおりIntelliJ IDEAでいい
0031デフォルトの名無しさん
垢版 |
2023/02/02(木) 23:42:46.57ID:xIkgofbW
>>29
数値型は大抵は宣言せずに事足りる
intかfloatだけで十分
宣言するのは引数かNullableのときぐらい
0033デフォルトの名無しさん
垢版 |
2023/02/05(日) 07:17:55.28ID:v4TpGVs8
>>30
オープンソースとはいえJetbrainsが「これからはFleetで行くからIntelliJの開発には参加しません」とか
言い出したらそうも言ってはいられない。
0034デフォルトの名無しさん
垢版 |
2023/02/05(日) 11:48:26.47ID:KddphXcC
>>33
0035デフォルトの名無しさん
垢版 |
2023/02/05(日) 14:33:05.09ID:5cc7+aVs
Fleet だろうがなんだろうが Kotlin が使えるならそれで良い。
IDE が IntelliJ IDEA でなければならないなんてことはない。
0037デフォルトの名無しさん
垢版 |
2023/02/05(日) 14:55:00.19ID:JGp0Ajcj
Google Playストアの評価が機種別になって、アプリのリリースがしやすくなったと見ていいんでしょうか?
昔の方式で星2つとかだとアップデートするモチベーションが無くなってしまうと思うのですが…
0042デフォルトの名無しさん
垢版 |
2023/02/05(日) 16:58:52.92ID:O5yWrFkB
モチベなくなるとかいう舐めたやつがム板にいるの草
まずモチベあげてこいや
0043デフォルトの名無しさん
垢版 |
2023/02/05(日) 17:27:18.81ID:LxIjuN9C
>>28
Fleetって有料ライセンスのみ販売予定じゃかったっけ?
無料ライセンスの予定もあるん?
0048デフォルトの名無しさん
垢版 |
2023/02/06(月) 06:57:46.08ID:JSEbBT7Z
>>36
後援企業のJetBrainsが苦しくなればKotlinとそのエコシステムの進化も停滞するだろうなという話。
>>35
実際の所IntelliJ以外でKotlin書いている人ってどれくらいいるんだろう。
0049デフォルトの名無しさん
垢版 |
2023/02/06(月) 07:27:11.36ID:X90rLmc5
>>48
fleetとintellijの話をしてるんだけど、jetbrainsが苦しいやらkotlinやらの話はしてない
spaceをより連携しやすく設計したのがfleetであって明確にintellijと差別化された商品だと思うんだが、なんでintellijが廃れる話になるのか
リモート開発プラットフォームのspaceが普及するならfleetは必須ツールになるとは思う
「後援企業のJetBrainsが苦しくなれば」はなんの話をしてるのか意味不明だから再度返答求む
こっちはわからないから聞いてるの
0050デフォルトの名無しさん
垢版 |
2023/02/06(月) 07:36:18.79ID:X90rLmc5
そもそもfleetは今のところ正式リリース後のライセンスは有料のみだから、spaceで開発しないなら使うことのない代物だろうに
0052デフォルトの名無しさん
垢版 |
2023/02/06(月) 16:18:15.14ID:Pcm2g4vQ
>>49
下の方に Free のライセンスも書いてあるよ。検討中だから変わる可能性はあるが。
0055デフォルトの名無しさん
垢版 |
2023/02/06(月) 22:36:04.89ID:JSEbBT7Z
>>49
いや、だから>>28でFleetとJetBrainsが心中する予測を元にしていると述べているので、
勝手に話を変えた挙げ句に意味不明とか言い出されても。

>>52
IntelliJはCommunity Editionは商用利用可だけど、FleetのFree版は商用不可。
無償版に人が流れて有償版が伸び悩むIntelliJから収益性の高そうなFleetに
ユーザーを移行させようとしても不思議じゃないように思う。

>>49はFleetはIntelliJの代替にはなり得ないという立場でいい?
0056デフォルトの名無しさん
垢版 |
2023/02/06(月) 22:55:57.47ID:X90rLmc5
kotlin1.8用のcompose compiler1.4がいつの間にか来てた
これでjava8と完全におさらばだ
0057デフォルトの名無しさん
垢版 |
2023/02/07(火) 19:50:20.15ID:HKR0nzX7
>>44
Kotlin Native微妙だし、普通にMAUIとか使った方がいいと思う。
C#なんてほぼKotlinみたいなもんだし。
0058デフォルトの名無しさん
垢版 |
2023/02/07(火) 19:53:23.74ID:GuvwFBq1
>>57
マウイ来んなやクソが
なんでわざわざ過疎スレにアンチして🕊しにくるのか理解できない
0059デフォルトの名無しさん
垢版 |
2023/02/07(火) 20:52:24.11ID:HKR0nzX7
>>58
何言ってんのかよくわからんが、普段はKotlinメインで使ってるけど、デスクトップ向けではないな、って話やろ。
態々、Kotlinで組むなら止める程度にはKotlin使ってるし。
0060デフォルトの名無しさん
垢版 |
2023/02/07(火) 21:03:25.88ID:AieqUWxb
Kotlinで作ることを前提にお題を求めてるのにC#で開発させようとするの草
0063デフォルトの名無しさん
垢版 |
2023/02/07(火) 21:19:25.74ID:JG0DFLjy
>>61
宣言的UIはカスだからC#で開発したほうがいい
0064デフォルトの名無しさん
垢版 |
2023/02/07(火) 21:22:01.03ID:sxKwL+o5
>>44
JetBrainsはFleetエディタの開発にこれ使ってる
https://github.com/JetBrains/skiko

サポートプラットフォーム
Kotlin/JVM on Linux(x86_64 and arm64)
Kotlin/JVM on Windows(x86_64)
Kotlin/JVM on macOS(x86_64 and arm64)
Kotlin/JVM on Android(x86_64 and arm64), starting with API version 24
Kotlin/JS + WebAssembly in browsers
Kotlin/Native on iOS(arm64 and x64)
Kotlin/Native on macOS (arm64 and x64)

ちゃんと自分の製品の開発に使っててえらい
0069デフォルトの名無しさん
垢版 |
2023/04/19(水) 23:19:08.07ID:4p0qLLoT
it.nameやit::name
のnameの部分を文字列結合して
アドレス参照って可能でしょうか

やっぱ全部手打ちのマンパワーですかね・・・
0070デフォルトの名無しさん
垢版 |
2023/04/20(木) 06:39:38.67ID:YgiO/wBC
>>69
正攻法としてはリフレクションを使うことになるんだろうけど、数が少ないなら手打ちの方が楽かな。
annotationで何とかできるのかもしれないけど、そこまでしたことがないので分からない。
メタプログラミング的には、gradleにソースコード書き換えのスクリプトを仕込むとか。
0071デフォルトの名無しさん
垢版 |
2023/04/20(木) 13:36:09.92ID:4kBjE/up
>>69
君が何をやりたいのかいまいちわからない
0073デフォルトの名無しさん
垢版 |
2023/05/26(金) 06:46:38.30ID:aXYAncjI
Kotlin のコンパイラとか IDEA って一応オープンソースだけど、
コメント無さすぎじゃない?

意図的に削除してるわけではなく、こういう開発スタイルなだけ?
0074デフォルトの名無しさん
垢版 |
2023/05/26(金) 19:54:29.39ID:sy2y3XVh
IT先進国ではソースコードから意味が読み取れるようになってる
コメントを書かないといけないということはソースコードが糞ということ
0076デフォルトの名無しさん
垢版 |
2023/05/27(土) 03:04:22.51ID:hhb34/XN
それで結局キーワードが長くなり記号が減りまるで英文のようになるとすると、俺にとってそれはクソとなるのではないかと思う。
0078デフォルトの名無しさん
垢版 |
2023/05/27(土) 08:07:28.84ID:ap1zYrbm
コメントがなぜ必要かというと要はサマリーが欲しいからなんだよ
よみゃわかる、とかいわれてもいちいち全部読んでたら時間のムダ以外の何ものでもない
30分のYoutube動画のURLだけ提示して「見れば全部説明してある」とかいわれても困るわけ
動画の内容は何で、これを見ると何がわかるのか、要点はなにか、それ書けということ
読む人の時間を節約するために、効率を上げるために的確なコメントがあるってのがわからん
脳タリンの言いそうな言葉が、「コードですべて説明できている」
0080デフォルトの名無しさん
垢版 |
2023/05/27(土) 14:06:25.50ID:ObF3i/yO
ぶっちゃけ詳細な情報はAIで生成する時代が来る
プログラマーが書くのはクラスやファイルに対して1行ぐらいの概要で良くなる
0081デフォルトの名無しさん
垢版 |
2023/05/28(日) 14:52:33.49ID:fKPLYy9v
やがて人の欲しがりそうなことを予測して先に作ったり実行したりするようになる。
0082デフォルトの名無しさん
垢版 |
2023/05/29(月) 16:21:12.69ID:F8hmnix6
そして人間は栽培されるようになる。
0084デフォルトの名無しさん
垢版 |
2023/06/28(水) 14:51:16.64ID:qwzkqtvX
Int?をIntでオーバーライドできるようですが逆は多分不可能ですよね?
検索してもなかなか情報が無いので
0085デフォルトの名無しさん
垢版 |
2023/06/29(木) 11:46:45.40ID:IO1TL2jD
nullを表現できる型よりも出来ない型の方が表現できる状態が一つ少ないんだから override できて当然だと思うが。
0086デフォルトの名無しさん
垢版 |
2023/06/30(金) 06:11:35.03ID:KO9roK1Y
漠∞!!!!
及∞!!!!!
斗∞!!!!!!
語∞!!!!!!!
原∞!!!!!!!!
芋∞!!!!!!!!!
表∞!!!!!!!!!!
牛∞!!!!!!!!!!!
0087デフォルトの名無しさん
垢版 |
2023/07/17(月) 05:21:02.23ID:0PvTd+Ok
Kotlin 1.9.0
0088デフォルトの名無しさん
垢版 |
2023/07/20(木) 14:25:41.42ID:x8Idengv
以下の2つのfilterって全く同じ処理ですか?
速度はほぼ同じようですしサイズも同じですし

fun main(){
val l = (1..1000000).toList()
val s = System.currentTimeMillis()
val m = l.filter { it in 3..500000 }
val s2 = System.currentTimeMillis()
val n = l.filter { it >= 3 && it <= 500000 }
val s3 = System.currentTimeMillis()
println(s2-s)
println(s3-s2)
println(m.size)
println(n.size)
}
0089デフォルトの名無しさん
垢版 |
2023/07/21(金) 01:25:51.58ID:esLQ8StN
>>88
ほぼ同じになるのではないかな。 it in 3..500000 は IntRange(3, 500000).contains(it) って書いたのと同じだし。
contains() メソッドのソースを見るとこう書いてある。

override fun contains(value: Int): Boolean = first <= value && value <= last

ただ、最適化されなかった場合は IntRange クラスのインスタンスを毎回作ることになるのでその分だけメモリ確保(及び不要になった時の解放)を毎回することになってそれが無駄になる。なので最終的なコードが同じになるかどうかはコンパイラ次第になる。
0090デフォルトの名無しさん
垢版 |
2023/07/21(金) 01:44:23.23ID:esLQ8StN
そう言えば実行環境が JVM だと HotSpot とかの実行時最適化がされるのでコードが少々違っても大差ない速度になる可能性がある。
0091デフォルトの名無しさん
垢版 |
2023/07/24(月) 12:07:12.59ID:8gMzjgKK
負の値に対して mod() 使った時と % 使った時で結果が違う。

(-7) % 3 は結果が -1
(-7).mod(3) は結果が 2

ソースを追ってみたら Int.mod() は kotlin/libraries/stdlib/src/kotlin/util/FloorDivMod.kt にある拡張関数が使われていた。

数学のルールとしては余りは0以上でなければいけないことになっているので結果が 2 の方が正しい。
その代わりその場合は割り算の結果が -3 で出る必要があるが、それは Int.floorDiv() を使うと計算できるようになっていた。( / 記号を使うと -2 になる)。

これ Kotlin 1.5 からのようだが(多分リリースノート等に書かれていることだろうが)、今まで気が付かなかった。
0093デフォルトの名無しさん
垢版 |
2023/07/27(木) 13:43:57.78ID:gIycSMlB
IntelliJ IDEA がAIに繋がるようになったそうだな。
やはりそのうち「アレやっといて」とか言うだけで全部やってくれるようになるんだろうな。
0094デフォルトの名無しさん
垢版 |
2023/07/28(金) 06:28:10.00ID:fwyKXBPr
AI化で、JSONとクラスの変換やORMの自動生成とかを一言だけでやってくれるようになると助かる。
0096デフォルトの名無しさん
垢版 |
2023/08/03(木) 21:22:22.37ID:JmIQL7Xi
Int?をIntでオーバーライドできるって書いてあるけどオーバーロードじゃないの
全然意味が変わってくると思うんだが
0098デフォルトの名無しさん
垢版 |
2023/08/04(金) 15:33:07.93ID:XIAkXQCa
Coroutinesを勉強しようと思ってるんですが
error: unresolved reference: kotlinx
他エラー多数
dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
}
このような依存関係を追加すれば動きそうですが
kotlinc c001.kt
kotlin C001Kt
などとやって動かす方法は無いのでしょうか
Coroutinesはandroid専用なのですか?

c001.kt
import kotlinx.coroutines.*

fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello")
}
0103デフォルトの名無しさん
垢版 |
2023/08/05(土) 01:08:23.15ID:NvWXSifX
>>102
そうなんだ
chatGPTは人間とのチャットみたいに、ここから掘り下げて質問できることが特徴だから、まず>>98をコピペしてchatGPTが答えたら、そこから疑問点を次々と納得できるまで入力してみるといいよ
0104デフォルトの名無しさん
垢版 |
2023/08/05(土) 04:09:23.74ID:UibUwgvW
>>103
いま>>98を質問してみると、kotlinx-coroutines-coreを使う方法出てくるからだれかが質問して少し賢くなったのかな
でも実行のやりかたがgradle使う方法とkotlinc使う方法がごっちゃになっててダメダメ

gradleを使って上記を実行する方法を教えてくださいと質問すると、gradleラッパーを作らないと実行できない方法を回答してきてダメダメ

gradleラッパーを作る方法教えてくださいと質問してようやく実行のための手順を全部教えて貰える感じ

初心者がここまで追加の問いをできるとは思えんが
010598
垢版 |
2023/08/07(月) 15:30:19.77ID:bKCC1GJD
kotlinc -classpath /home/hoge/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.6.4/2c997cd1c0ef33f3e751d3831929aeff1390cb30/kotlinx-coroutines-core-jvm-1.6.4.jar c001.kt -include-runtime -d c001.jar
コンパイルは出来ましたが
Exception in thread "main" java.lang.NoClassDefFoundError: kotlinx/coroutines/GlobalScope
at C001Kt.main(c001.kt:4)
at C001Kt.main(c001.kt)
Caused by: java.lang.ClassNotFoundException: kotlinx.coroutines.GlobalScope
...

chatgptに聞いたりググったりして
gradle init --dsl kotlin
2 enter 4 enter ...
などとしてみてapp/build.gradle.ktsのdependenciesに
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
を書いて./gradlew runしてみましたが
> Task :app:compileKotlin
w: file:///hoge/kt/c001/app/src/main/kotlin/c001/App.kt:4:5 This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.

そもそもkotlinx.coroutines.*とkotlin.coroutines.*があるようですが
コンソールアプリで使えるのは後者なのでしょうか
もしそうだとすると上のサンプルコード自体コンソールでは使えないかもしれません

色々試してみていますがまだうまく動かせていません
初心者すぎてすいません
0111デフォルトの名無しさん
垢版 |
2023/08/07(月) 23:12:11.67ID:dolrRGoi
この頃は自動翻訳しても結構読める日本語になるので、面倒な時は翻訳している。
ブラウザに自動翻訳のボタン付いてて楽だし。
0112デフォルトの名無しさん
垢版 |
2023/08/08(火) 04:42:08.20ID:7gEoIqTk
多分>>105のkotlinc使ってコンパイル成功したやつで実行出来るとおもうんだけど、
コンパイル時に使ったjarの場所を実行時にも指定する必要があるはず
0113デフォルトの名無しさん
垢版 |
2023/08/08(火) 04:55:31.62ID:7gEoIqTk
gradle使う場合(ここでは7.2使用)はgradle init --dsl kotlinして、質問にはこんな感じに答えて
2: application
4: Kotlin
1: no - only one application project
それで作ったプロジェクトでApp.ktを>>98のc001.ktのコードに置き換えて、
app/build.gradle.ktsのdependenciesにimplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0")を追加して、
./gradlew runで実行できたよ
./gradlew buildするとAppTest.ktがApp.ktと合ってないのでエラーになるからappHasAGreeting()の中身を空にしとくといい
011498
垢版 |
2023/08/09(水) 14:27:04.56ID:9U6EOwhw
113さんの方法で実行できました。バージョンは最初1.5.0でコンパイルしましたが最新の1.7.3でも動きました
これで勉強できます。ありがとう!
0115デフォルトの名無しさん
垢版 |
2023/08/17(木) 14:46:06.81ID:OpFORHD6
androidアプリでデータ保存するとしたら今はroomになると思うのですが
room + koin + coroutine
room + coroutine flow
room + livedata
room + rxjava3
など色々な技術がありますがこれが最新ってのはどれなんでしょうか?オススメの組み合わせはありますか?
0118デフォルトの名無しさん
垢版 |
2023/09/02(土) 10:58:57.91ID:EZqgn//v
以下のbyはどういう文法なのでしょうか
val navBackStackEntry by navController.currentBackStackEntryAsState()
クラスとプロパティの委譲のbyとはまた別物ですよね?
0120118
垢版 |
2023/09/02(土) 14:26:35.12ID:EZqgn//v
>>119
ありがとうございます
前後の文脈も示すべきでした

ttps://developer.android.com/jetpack/compose/navigation?hl=ja
ここにあるコードの抜粋
val navController = rememberNavController()
Scaffold(
bottomBar = {
BottomNavigation {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentDestination = navBackStackEntry?.destination
...

この使われかたはプロパティじゃないと思うのですがどうでしょうか
0122118
垢版 |
2023/09/04(月) 10:07:53.25ID:FcZAE9nJ
>>121 ありがとうございます
検索してもインターネットには情報が少ないですね
エラーメッセージを頼りにちいさいサンプルを書いてみましたが、
error: unresolved reference: test
このエラーが消せませんでした
委譲ならtestが呼べると思ったのですが

import kotlin.reflect.KProperty
public interface A{
fun test() : Unit
operator fun getValue(b : Nothing?, c:KProperty<*>) : String
}
public val impl = object : A{
override fun test() = println("hello world")
override fun getValue(b: Nothing?, c: KProperty<*>) = "str"
}
fun main(){
val da by impl
da.test()
}
0123デフォルトの名無しさん
垢版 |
2023/09/04(月) 10:58:04.18ID:3ylJB9rm
>>122
移譲の形式でval da by implとした場合、da.test()はdaのgetValue(....)した結果をレシーバとしてtest()メソッドを呼ぶという意味になるよね?つまり"str".test()という意味になってエラーになるだろう

移譲でないval da = implとすればda.test()は呼べるはず
0124118
垢版 |
2023/09/04(月) 14:21:13.43ID:FcZAE9nJ
>>123
ありがとうございます。一人では絶対にわからなかったと思います
getValueにはそういう意味があるのですね
以下のように書き換えてhello worldが表示できました

import kotlin.reflect.KProperty
public interface A{
fun test() : Unit
operator fun getValue(b : Nothing?, c:KProperty<*>) : A
}
public val impl = object : A{
override fun test() = println("hello world")
override fun getValue(b: Nothing?, c: KProperty<*>) = this

}
fun main(){
val da by impl
da.test()
}
0126デフォルトの名無しさん
垢版 |
2023/09/16(土) 10:43:09.92ID:YSu5R3en
javaのが上なのか
Kotlinに移行した開発者は増えてると思うんだがそこまででもないのか?
最近検索にひっかかるドキュメントはjavaよりKotlinのほうが多い印象
0127デフォルトの名無しさん
垢版 |
2023/09/16(土) 11:40:23.57ID:8u+hT5wA
Android 向けアプリの開発では結構使われているのではないかな。知らんけど。
Java の場合は20年以上前から色々な事に使われてきてプログラマも多いし本も多いから上なのは当然の事。
というかそもそも Kotlin は JavaVM で動くやつが最初に出て Java のライブラリ使って動くことが前提なのでまだまだ Java なしではいられない状態。
0128デフォルトの名無しさん
垢版 |
2023/09/16(土) 18:54:40.30ID:YSu5R3en
androidはbuild.gradleもGroovyからKotlin(build.gradle.kts)に置き換えられるようになったし
かなりKotlin推しって感じ
俺はjavaから乗り換えた。Kotlinは書いていて割と楽しい方だと思う
そして名前がかわいいという最強のメリット
0129デフォルトの名無しさん
垢版 |
2023/09/17(日) 10:21:48.92ID:VwpwudFm
var書いて変数名の後にコロン書いてまた変数型

の一手間を惜しまない人にはオススメ
0130デフォルトの名無しさん
垢版 |
2023/09/17(日) 15:07:05.62ID:+bXFaSn8
型の指定は省略出来ることが多いが、それで可読性が下ることもあるかな。
0131デフォルトの名無しさん
垢版 |
2023/09/17(日) 18:59:31.43ID:Tq9Zm9TM
確かにできるだけ型注釈はほしいな
Haskellなんかは型を明示してないとわけわからなくなったり
型注釈によってプログラムの動作が変わるまである
型注釈でプログラムの動作(全解探索か最初の解探索か)が変わるコードを始めてみたときは感動した
0132デフォルトの名無しさん
垢版 |
2023/09/17(日) 21:30:35.28ID:SFlUWSkF
varとvalの使い分けに価値があるんだから手間とは感じないなあ
コーディング量トータルで見たら誤差すぎる
JavaScript系でletとconst書くのが面倒とか聞いたことないし
0133デフォルトの名無しさん
垢版 |
2023/09/17(日) 23:41:10.25ID:70jB6wMR
まだ使い始めて4ヶ月ぐらいだけど
徹底してnullセーフティを追求する言語仕様のよさがやっとわかりはじめた
基本!!は使っちゃダメなのだよね?
0134デフォルトの名無しさん
垢版 |
2023/09/18(月) 01:35:25.07ID:iIjoZZgL
自分で新たに作る Kotlin プログラムでは !! を使うように書く必要性がないのでは?
0135デフォルトの名無しさん
垢版 |
2023/09/18(月) 07:37:13.91ID:z3xniIT9
importと利用できる名前が
リンク出来ないのが個人的に見づらい
Pythonみたく
import numpy as np
np.array()
が見やすく名前の衝突もなくいいなぁ
0136デフォルトの名無しさん
垢版 |
2023/09/18(月) 08:02:25.49ID:4OJ2QsEy
>>135
できるみたいだけど

https://codelabsjp.net/kotlin-practice-renameimport/
>【Kotlin練習問題】importの名前を変更する
>クラスや関数をimportする際、import文の後にas 新しい名前と書き加えることで
>別の名前を指定することができます。別のライブラリからの似たような名前の
>クラスや関数を複数個使いたい時など、混乱を避けるのに便利です。
0137デフォルトの名無しさん
垢版 |
2023/09/18(月) 09:09:48.94ID:UmWRU5gb
asは知らなかったなー便利だな
Kotlinすぐバージョンがあがるから、知らない機能がたくさんある
先日もこんなちょっとクスっとする機能を知った
fun main(){
println(1_000_000) //3桁ごとにアンダーバーで区切った数値が使える
println(3_000L) //Long型
}
0138デフォルトの名無しさん
垢版 |
2023/09/18(月) 15:41:07.62ID:FUExQ+S6
クスッとするってそれもうJavaにすら導入されてるよ
しかも12年前のバージョンだ
0139デフォルトの名無しさん
垢版 |
2023/09/18(月) 15:48:04.25ID:QNU3UdJL
12年前と書いたのはアンダースコアのほうね
100Lみたいな書き方ならJavaが生まれる前の古典
0140デフォルトの名無しさん
垢版 |
2023/09/18(月) 23:47:47.23ID:hS5hyepz
それはすまなかった
android-studioが重くてKotlinとおさらばしなければいけなくなったのだが
その前にJavaFXでGUIアプリでも作ってみようと思う
0141デフォルトの名無しさん
垢版 |
2023/09/19(火) 15:36:41.44ID:5iDBL4Hm
コマンドラインでコンパイルしたり他のIDE使うとかすれば重いのはなんとかなる

ゲーミングPCみたいに無茶苦茶速いPCにしても良い
0143デフォルトの名無しさん
垢版 |
2023/09/24(日) 17:59:53.84ID:ehyIQvP9
>>142
乙乙乙
0144デフォルトの名無しさん
垢版 |
2023/09/24(日) 18:53:57.58ID:PIc2zoKD
>>142
翻訳すごいな

いつかはKotlinに。
0145デフォルトの名無しさん
垢版 |
2023/09/24(日) 21:05:16.52ID:tu4YalfX
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。

意外と自分の知らない新機能が入ってたりして勉強になるw

当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
0146デフォルトの名無しさん
垢版 |
2023/09/24(日) 21:05:35.89ID:tu4YalfX
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。

意外と自分の知らない新機能が入ってたりして勉強になるw

当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
0147デフォルトの名無しさん
垢版 |
2023/09/24(日) 21:06:06.17ID:tu4YalfX
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。

意外と自分の知らない新機能が入ってたりして勉強になるw

当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
0148デフォルトの名無しさん
垢版 |
2023/09/24(日) 21:50:16.16ID:tu4YalfX
なんかchmateがずっとくるくる回ってるので放っておいたらめっちゃ投稿された…
0151デフォルトの名無しさん
垢版 |
2023/11/05(日) 05:28:11.53ID:w6RhJs5K
Kotlin 1.9.20
0152デフォルトの名無しさん
垢版 |
2023/12/02(土) 20:34:40.84ID:Jdc4wkyf
>>150
11月データに更新されてたけど、
Kotlinが先月18位から今月15位に上がってんね
Androidアプリ用途だけじゃなくてサーバー用途のJava-to-Kotlinの置き換えが進んでるってことなのかな
2,3ヶ月後にはGo-langの順位を抜きそう
0153デフォルトの名無しさん
垢版 |
2023/12/03(日) 07:08:24.26ID:iaiv32Fc
O'Reilly の Kotlin Cookbook の日本語版が出て欲しいところ。
0154デフォルトの名無しさん
垢版 |
2023/12/03(日) 10:56:52.01ID:UXi8gB9u
今更だけどアセンブリ言語がこんな高くなるのは
どういうポイント付けしてるんだろ
0157デフォルトの名無しさん
垢版 |
2023/12/03(日) 12:56:44.34ID:iaiv32Fc
そういやC言語ってまだ大人気なんだな。Python が人気なのはわかるが。
MATLAB という言語は知らなかった。
0158デフォルトの名無しさん
垢版 |
2023/12/03(日) 13:05:55.65ID:BMiemEr+
>>152,154
2,3ヶ月後に逆転したら謎だらけ

kotlin programming
約 46,300,000 件 (0.30 秒)

go language programming
約 1,040,000,000 件 (0.44 秒)
0160デフォルトの名無しさん
垢版 |
2023/12/03(日) 13:39:08.82ID:JMjzgwiz
>>157
MATLABは工業系で計測機器の動作管理によく使うからね
今後も順位をキープしてずっと居座り続けるだろうよ
0161デフォルトの名無しさん
垢版 |
2023/12/03(日) 13:53:20.34ID:fJ8e7xGk
>>156
kotlinで新しくサーバーやるならSpringBootよりktorだろうけど、kotlinでSpringBootやる人しか見ないの笑う、まあいいんだけどさ
0166デフォルトの名無しさん
垢版 |
2024/01/01(月) 03:21:32.14ID:gRe115Q6
あけましておめでとうございます
ことりんもよろしくおねがいします
0167デフォルトの名無しさん
垢版 |
2024/01/01(月) 03:59:33.09ID:ayAmvFgl
200gくらいでPSPやGBAを遊ぶのに最適な機種は何ですか?
元がブラウン管のゲーム機は、RGB30の画面比率で満足しています
Powkiddy X55は293gでちょっと個人的に重いです
重くてあまりゲームをやらなくなると思います
Switch liteがそうだったので
0169デフォルトの名無しさん
垢版 |
2024/01/01(月) 07:39:12.95ID:gRe115Q6
へー。Linux で動いてる携帯ゲーム機なんてあったんだ。知らなかった。
0170デフォルトの名無しさん
垢版 |
2024/01/01(月) 07:42:34.87ID:gRe115Q6
Amazonで「ポータブルゲーム機 linux」で検索すると沢山出てくるな。こんなにあったとは。
0171デフォルトの名無しさん
垢版 |
2024/01/02(火) 03:17:59.47ID:mFoNsR7q
Spring bootはアノテーションのつけ方が今一つ
どうせなら main 文とか import 文とか全部省略できるようにやってくれればいいのに
あと使っているうちに動かなくなるところとか
結局、tymeleef、html,JavaScript と共存することになるので
コードが複雑になる
0172デフォルトの名無しさん
垢版 |
2024/01/04(木) 20:35:28.16ID:CzP1rBEm
mainはわかるけどimport省略って、いったい……?
アノテーション使わずに、パッケージ名やクラス名、メソッド名でどうにかするとか?
0173デフォルトの名無しさん
垢版 |
2024/01/05(金) 00:27:49.42ID:1uEv2PoB
Spring Bootの役割を完全に誤解しているな
LombokやBetter Javaではなくエンタープライズアプリの開発フレームワークや
0174デフォルトの名無しさん
垢版 |
2024/01/05(金) 01:31:30.11ID:qp6Z8v6g
アノテーションといえば製品によるだろうけど自作アノテーションでコンパイル時にコード生成させる方法を学んで組み込んだら格段に開発効率が上がった経験あるわ
0175デフォルトの名無しさん
垢版 |
2024/01/05(金) 06:21:58.05ID:1uEv2PoB
そのコード生成がされるまではJavaのコードとして一時的に不正になるのか、生成前でもJavaとしてコンパイルが通るソースとして成立するのかには隔たりがある
前者はLombokやKotlinのようにコーディング量が劇的に減って便利だとしてもIDEなどのツールにサポートされるまでは使えるツールが制限され普及の障壁になる
Spring Bootがimport分やmainの記載を省くような文法変更を加える大げさな仕組みだった場合はここまでの普及はなかった
0177デフォルトの名無しさん
垢版 |
2024/01/06(土) 00:34:03.86ID:ZpG+VQ/F
kapt使い慣れると、ちょっとしたことがコード生成でできるようになるから、めちゃくちゃ便利になるよね。
0178デフォルトの名無しさん
垢版 |
2024/02/05(月) 15:06:39.49ID:8tY/Vubv
kotlin.collections.MutableMap のドキュメントを見てもソースを見ても computeIfAbsent() メソッドはないのになぜか使えるね。
0181デフォルトの名無しさん
垢版 |
2024/02/22(木) 09:50:47.85ID:6IzShUqU
これでKotlinが5位になっていたことに、たった今気付いた。

将来性の高いプログラミング言語とは?タイプ別ランキングTop10
https://www.sejuku.net/blog/124758
0184デフォルトの名無しさん
垢版 |
2024/02/22(木) 19:17:15.95ID:aZqDoMn+
たぶん、Groovy の本は日本で、ここ10年で1冊も出ていない

文法は、Ruby と似ているから、
Ruby on Rails をやれば、おおよそ分かる
0185デフォルトの名無しさん
垢版 |
2024/02/23(金) 08:22:07.42ID:hkSlnfDn
GroovyなんてJavaのビルド構成触るときにしか書いたことないや
それもいまKotlin Scriptに書き直されてもう使うこと無くなりそうだけど
0187デフォルトの名無しさん
垢版 |
2024/03/16(土) 18:48:05.56ID:NhZufIul
最も年収の高いプログラミング言語は? CAMELORSがランキングを発表
https://codezine.jp/article/detail/19210

1位 Go
2位 Kotlin
3位 Python
0188デフォルトの名無しさん
垢版 |
2024/03/16(土) 18:54:13.83ID:NhZufIul
トップ10の中にRustが入っていないな。まだそんなに年収得られるほど稼げる用途で使われてないのかな?
0190デフォルトの名無しさん
垢版 |
2024/04/24(水) 12:13:38.89ID:jz/ZCgev
アニメ絵な表紙はいらん
0195194
垢版 |
2024/04/25(木) 18:07:18.97ID:Kq+Xk6me
go マスコット でも見つかった

>Go言語のマスコットキャラクター「Gopher」を愛でる

俺には無理
0199デフォルトの名無しさん
垢版 |
2024/04/25(木) 20:44:13.26ID:+qFJrfoB
日本じゃ販売されてないオライリーの本だとテンみたいな動物が描かれてるな
0201デフォルトの名無しさん
垢版 |
2024/04/29(月) 00:57:56.26ID:l6yotNy3
うーん、やっぱりインパクトが薄すぎるな
特段かわいくもないしカッコよくもないし、さりとてキモくもない
せめてキモカワイイくらいでないとインパクトが薄い
レスを投稿する


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