Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Kotlin中變量不同於Java: var 對val(KAD 02),kotlinkad

Kotlin中變量不同於Java: var 對val(KAD 02),kotlinkad

編輯:關於android開發

Kotlin中變量不同於Java: var 對val(KAD 02),kotlinkad


原文標題:Variables in Kotlin, differences with Java. var vs val (KAD 02)

作者:Antonio Leiva

時間:Nov 28, 2016

原文鏈接:http://antonioleiva.com/variables-kotlin/

 

Kotlin系列課程的第二課:Kotlin中變量不同於Java: var 對val。

在這第二章節中,我們將了解Kotlin中變量是怎樣工作的,什麼是val和var,什麼時間使用它們。

 

我從這開始,是因為理解這部分內容對後續討論怎樣在類中創建“字段”時非常有用(還可了解它們不是字段)。

 

Kotlin變量

如Java那樣,只要在變量的范圍內執行代碼,Kotlin變量就可以被賦值、修改,在程序中不同位置被使用。

 

但是,我們將聚焦在它與Java不同的方面。

 

  • 變量分可變的和不可變的

在Java中也分可變與不可變(如果不希望變量被改變,可將變量說明為final),但是在Kotlin中,更簡潔的、更常用的是:只要可能,Kotlin中首選時不變值

 

事實上,在程序中大部分地方使用不可變的變量,可帶來很多益處,如:可預測的行為和線程安全。

 

  • 用val或var聲明變量,指明它們是不可變的或可變的

在Kotlin中有趣的是大部分情況你不需要說明你使用對象的類型,而編譯器就是推斷它。

 

所以,我們只需要依據要產生的變量類型填寫var或val,其類型通常能夠被推斷出來。我們也可以明確地指定變量類型。

 

一些例子:

1 var x = 7
2 var y: String = "my String"
3 var z = View(this)

說明:如你所見,你不需要用new來創建對象的新實例。

 

  • 類型轉換是自動完成的

無論何時,編譯器能夠檢測沒有其它可選項,自動地完成類型轉換。非常棒!

1 val z: View = findViewById(R.id.my_view)
2 
3 if (z is TextView) {
4     z.text = "I've been casted!"
5 }

看見我沒有調用setText()嗎?這將在下一篇說明!

 

  • 在Kotlin中,所有都是對象

沒有基本類型,沒有void。如果有時沒有返回值,實際時返回Unit對象。大多數情況下,Uint可以省略,但是它確實存在的,被隱藏了。

 

因此,所有這些比哪裡都是對象:

1 val x: Int = 20
2 val y: Double = 21.5
3 val z: Unit = Unit

 

  • 簡潔的數字類型不能賦值給復雜的類型

例如,整形不能賦值長變量。下面的代碼不能通過編譯:

1 val x: Int = 20
2 val y: Long = x

 

你需要明確的進行轉換:

1 val x: Int = 20
2 val y: Long = x.toLong()

 

結論

這些是在Java和Kotlin之間能夠找出的明顯不同之處。通常,Kotlin變量提供更加靈活的安全的(由於任何可能時用val約定)和更清晰的簡潔的代碼

 

仍有疑問?准備閱讀下篇!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved