4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AndroidStudioでKotlinのvalとvarの違いを知る

Posted at

Kotlinの変数定義

Kotlinの変数の定義にはvarvalがあります。

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は固定なので代わることがありませんし、間違って代入されてしまうことを防ぐ働きもあります。

varvalKotlinを学ぶ上で必ず覚える必要があります。

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)

このようにします。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?