/var/log/messages

debugging with sixth sense

Kotlin メモ

以下、備忘を列挙。

  • class object な定義は Java で言う static な手続きを定義するために使う
1
2
3
4
5
6
7
8
9
public open class Hoge() {
   /* 中略 */

   class object {
       public open fun newInstance(url: String): Hoge {
           return Hoge()
       }
   } 
}
  • 以下な例について this って何なのかがすぐにイメージできんかった件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fun isUpperCase(str : String) : Boolean {
  fun String.all(f : (Char) -> Boolean) : Boolean {
    for(val c in this) {
      if(!f(c)) {
        return false
      }
    }
    
    return true
  }
  

  return str.all {
    Character.isUpperCase(it)
  }
}
  • ちょっとまだ慣れない。isUpperCase の本体は以下なカンジなのか
1
(str.all (lambda (x) (Character.isUpperCase x)))
  • (lambda (x) (Character.isUpperCase x)) が { Character.isUpperCase(it) } で書き替えできるのか
  • 正直 Scheme の書き方に慣れてるので微妙感あり
  • あと String なオブジェクトの this が文字配列なカンジのモノとして for でバラせるのもアレ

Comments