Kotlinの変数定義
Kotlinの変数の定義にはvarとvalがあります。
kotlin.kt
var iVar : Int = 0
val iVal : Int = 0
varとvalの違い
varとvalは、このように大きく異なります。
kotlin.kt
var iVar : Int = 0
val iVal : Int = 0
iVar = 1 // OK
iVal = 1 // NG
定義方法 | 内容 |
---|---|
val | 値の変更が出来ない |
var | 値の変更が出来る |
値の変更が出来ないのは致命的な変数(定数なのか?)のように思われますが、Kotlinではvarよりvalの方が出番が多くなります。
たとえば
valに多い役割
val tvMain = findViewById<TextView>(R.id.tvMain)
レイアウトのIDを検索して代入するこの定義には必ずvalが使われます。レイアウトのIDは固定なので代わることがありませんし、間違って代入されてしまうことを防ぐ働きもあります。
varとvalはKotlinを学ぶ上で必ず覚える必要があります。
varで起こしがちの初歩ミス
varは値の変更が可能なので特にミスは起こらなさそうですが、複数回使用するときに注意する必要がありま
す。
sample.kt
var str = "代入1回目"
strToData(str)
これを何回か使おうとコピーするとエラーになります。
sample.kt
var str = "代入1回目" // OK
strToData(str)
var str = "代入2回目" // NG
strToData(str)
var str = "代入3回目" // NG
strToData(str)
2回目以降は定義ではないので
sample.kt
var str = "代入1回目" // OK
strToData(str)
str = "代入2回目" // OK
strToData(str)
str = "代入3回目" // OK
strToData(str)
このようにします。