データ型とリテラル

主なデータ型とリテラルについて記載します。

数値型

  • Double - 8バイト
  • Long - 8バイト
  • Float - 4バイト
  • Int - 4バイト
  • Short - 2バイト
  • Byte - 1バイト

IEC 80000-13:2008 で 1バイト(B)=8ビット(bit)となっています。もう1バイトは8ビットじゃないかもしれないよ、と言わなくていいです。

符号なしの UInt などは Kotlin 1.3 以降で利用可能となります。

現在の Kotlin のバージョンをプリントするには KotlinVersion.CURRENT が使えます。

fun main() {
    println(KotlinVersion.CURRENT)
    // 1.3.31
}

リテラル

  • 10進数 - そのまま記載 (例. 123 など)。Long にするときは L をつける (例. 123L)。
  • 16進数 - 0x ではじめる (例. 0xAB など)。
  • 2進数 - 0b で始める (例. 0b1101 など)。
fun main() {
    val b = 0b1001
    print(b)
}

実行結果

9

尚、リテラル中のアンダースコア (_) は無視されますので、バイト区切りやビットの区切りの可読性向上のためにつかえます。

fun main() {
    val a1 = 0xDEADBEEF
    val a2 = 0xDEAD_BEEF

    println("a1 = $a1")
    println("a2 = $a2")
}

下で説明する文字列テンプレート (string template) を使って、文字列中に変数を埋め込んでいます。

実行結果は a1a2 ともに同じです。

a1 = 3735928559
a2 = 3735928559

尚、16進数のまま表示するには、format が使えます。

fun main() {
    val a1 = 0xDEADBEEF
    val a2 = 0xDEAD_BEEF

    println("a1 = %08X".format(a1))
    println("a2 = %08X".format(a2))
}
a1 = DEADBEEF
a2 = DEADBEEF

文字と文字列

  • Char - 文字
  • String - 文字列

Unicode の文字コード指定は \u で指定します。

fun main() {
    val c1: Char = 'A'
    val c2: Char = '\u3042'
    println("$c1 $c2")
}
A, あ

文字列で複数行を指定するリテラルは、二重引用符を三個重ねて書きます。

fun main() {
    val s = """
        Hi!
        How are you?
    """
    println(s)
}

この実行結果は次のようになります。

        Hi!
        How are you?
    

複数行を扱うのは問題ありませんが、空白があるためインデントされています。 trimIndent で行毎の無駄なインデントと、最初と最後の改行を取り去ることができます。

fun main() {
    val s = """
        Hi!
        How are you?
    """.trimIndent()
    println(s)
}

実行結果

Hi!
How are you?

文字列をテンプレートとして、文字列内に変数に割り当てられた文字を挿入するには、${変数} とします。これを文字列テンプレート (string template) といいます。

fun main() {
    val n = "Nick"
    print("Hi, ${n}!")
}
Hi, Nick!

そのほか、文字列内では標準的なエスケープシーケンスは入力可能です。 また、文字列の接続を行うのに + の演算子が使えたりします。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Kotlin 入門