まずは、if。ifは、C言語のif文と同じような使い方と、値を返す式としても使える。if文のような使い方は単に返す値を無視しているだけのような気もするw

C言語なんかと同じような書き方。

    var a = 10
    var b = 20

    if(a > b) {
        println("aの方が大きい")
    } else {
        println("bの方が大きい")
    }

if式

    var a = 10
    var b = 20

    var c = if(a > b) a else b
    println("c=${c}")

    var d = if(a > b) {
        println("aの方が大きい")
        a
    } else {
        println("bの方が大きい")
        b
    }
    println("d=${d}")

ブロックの最期の式の値が返る。また、式の場合は値を返さないってことはできないのでelseが必要になる。

when式

C言語のswitch文にあたるようなものだ。

    var a = 5

    when(a) {
        1 -> println("a = 1")
        2 -> {                                  // ブロックも書ける
            println("a = 2")
        }
        3, 4 -> println("aは、3か4")           // 複数の条件を与えるには ","で区切る
        in 5..10 -> println("aは5~10の範囲")    // 範囲指定もできる。この場合は、5以上で10以下。
        else -> {
            println("その他")
        }
    }

    // when式
    var b = when(a) {
        1 -> "aは1"
        else -> "aは1以外"
    }
    println(b)

whenもifと同じように式なんで値を返せる。


このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

忘れんようにメモを残しておく。

SourceTree(2.7)のMac版でコミットしようとすると"ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory...."のようなエラーが出てコミットできない。

調べてみるとダウングレードするのがよさげとわかり、とりあえず2.6.3に落とした

ちなみにmacOS Sierra(10.12.6)で起こってて、High Sierraでも起こっているようだ。

[SRCTREE-5294] Git push to local network repository behind ssh fails - Create and track feature requests for Atlassian products.
このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

Kotlinの変数はそのままではnullを代入できない。型の宣言の最期に?を付けることでnullの代入が可能になる。

    var str:String? = null

nullの代入を許す変数へのアクセスに?.を使うと変数がnullの場合nullを返してnullでない場合はその後に続くプロパティやメソッドを実行するように書ける。

    var str:String? = null
    println(str?.length)    // nullを表示

nullの場合、nullの代わりになにか値を返すには?:を使う。

    var str: String? = null
    println(str?.length ?: -1)      // -1を表示

nullの場合、例外を発生させ、null以外の場合はその値を返すには!!を使う。

    var str: String? = null
    println(str!!.length)      // 例外を発生

このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

↑このページのトップヘ