iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0

在 Day23,我們看到了以下寫法。

...
private var dessertsSold = 0
...

var 是一種定義變數的方式,另一種是 val。

我們可以用 var 來定義值可以改變的變數;用 val 來定義值維持不變的變數。

變數保存的是物件的參考(reference)
當編譯器將物件指派給變數時,不會將物件本身放入變數,而是將指向物件的參考放入變數。
因為變數保存物件參考,所以它可以訪問(access)物件。

如果用 val 宣告變數,指向物件的參考會永遠待在變數裡面,不會被換掉。
但是使用 var 的話,你可以指派別的值給變數。

回到 Day23,所以我們可以將dessertsSold = 0放到任何段落(在那篇例子,指的是生命週期回調方法),來重新指派值給dessertsSold變數。

讓我們小結一下,

用 var 定義變數代表變數的物件參考可被換掉;用 val 定義變數代表變數永遠保存同一個物件的參考。


參考資料

  • 深入淺出 Kotlin (書籍,作者 Dawn Griffiths, David Griffiths,出版:碁峰資訊,2019.08)

上一篇
[Day 23] Activity 的 lifecycle - 甜點應用程式 - onCreate() vs onStart()
下一篇
[Day 25] Activity 的 lifecycle - 甜點應用程式 - 生命週期回調方法總結
系列文
[Android] 在 activity 與 fragment 身上的 lifecycle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言