20190718
import kotlin.properties.Delegates
class User {
var name: String by Delegates.observable("<no name>") {
prop, old, new ->
println("prop == $prop ") // -> var Person.name: kotlin.String
println("old == $old")
println("new == $new")
}
}
fun main() {
val user = User()
user.name = "first"
println("------------------------")
user.name = "second"
println("------------------------")
user.name = "third"
}
なんか、こうなっているのか。それで、って感じ。cacheでできそうだけど。arraylistとか使ってやったことがあるけどさほどむつかしくなかった。多くの値を保持できるし。だから、observableがどう便利になるかわからない。oldoldを追加したらいけるのかな。追加したらコードが赤くなってしまった。できないということか。
20190630
この頃、kotlinの勉強はやめている。android でScreenShotアプリをほぼ完成させた。今は、メモ帳を作っている。近々、これも完成すると思っている。いろんな機能をつけようとするときりがない。作っているとこの機能も付けたいなんて思いついて、取り組み始めてしまって、いつまでたってもアプリが完成しないし複雑になっていく。簡単なアプリを作ることにした。
20190606
kotlinはコードが短くなったりして便利だけどややこしい。ゆっくり覚えようと思う。
20190530
メソッド参照って何??わからんけど以下のように使えば良いんだ。きっと。
//メソッド参照
fun main( ) {
//メソッド reversed() は普通、このように使う
val str="12345"
println(str.reversed())
// 「型::メソッド名」という書式で取得
val mrv: String.()->String = String::reversed
// メソッドっぽく呼び出せる
println(str.mrv() )
//メソッドtoUpperCase()についても同じ
val mtu: String.()->String = String::toUpperCase
println("abc".mtu() )
//mtuは String.() つまり "abc".mtu() のように使って 戻り値はstringで大文字になるってこと??
}
20190530
kotlinはやはりjava以外知らない誰かさんには難しすぎる。でも所詮、humanが作った言語、底はきっと浅い。現時点ではどれだけ深いかわからないけど、それほどではないと思う。kotlinに取り組んでまだ2週間しかたっていないし。
20190529
//Nullable 型 を 強制的 に 非 null 型 に 変換 する「!!」 演算子
fun main( ) {
var str: String? = null
var str1: String? = "abcde"
println(str!!.length)
}
これもやめてほしいな。
20190528
fun main() {
fun myf(n: Int, f: (Int) -> Int): Int = f(n)
println(myf(5,{ it *it }))
}
わかりやすくない。初めて見たらわからんぞ。
20190527
out inで悩んでいる。今
Foo<*> 、Star-projectionと呼んでいる。これは Foo<out Any?> の略記法
だって。
20190525
println( { n: Int -> n * n }(7))
こんなのあり?
fun <T> compose(f: (T) -> T, g: (T) -> T): (T) -> T ={ f(g(it)) }
fun main( ) {
println( compose({ n: Int -> n + 1 }, { n: Int -> n * n })(10))
}
も?
20190520
TextBoxなどのwidgetが部品ならば、ネットで集めたsnippetも単なる部品として考えてしまうことにする。こまごましたことは気にかけないようにしよう、動けばそれでいいのだ。と自分に言い聞かせても、きっと細部まで、関係ないところまで穿りたくなって、時間だけが経過して、なのも開発できないでいる。
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long)
の*って何
20190519
kotlinの基礎は大体わかった。今日からAndroid studioをいじり始めた。
20190518
a?.equals(b) ?: (b === null)
なにこれ、調べたら == だって
20190514
javaとかなり違うじゃないかkotlinて、ややこしい、!! * @ ?などあったりで。生まれつき頭が⁇、なのに覚えられない、すぐ忘れてしまう。
javaに戻りたいよ。
20190512
kotlin覚えよ。javaも中途半端なのに。