學習 Kotlin 系列:一生綁定 val v.s 自由任命 var

更新於 2020/07/27閱讀時間約 2 分鐘
行程 (Process),正如其名,指的是正在執行的程式 (Program),變數在其之中,是獲得命名,能保留自我的少數特殊存在。如果變數屬於全域變數 (Global Value),那麼其生命週期就會和行程一致,其他較短生命週期的都是局部變數 (Local Value)。
從一而終,在生命中止前不變其 reference 值的就是唯讀變數 val ,反之就是可讀寫 變數 var ,簡單的記法有 l 直線 r 分岔;也因為前者不能改變,所以必須在初始時就指定賦值 (Assign Value)。
賦值就是將單一對象指派給變數,做法是用一個等號將右邊對象 b 指派給左邊 a (a = b),至於數學上的相等則是用兩個等號 (a == b),關於其他數學邏輯判斷會在後續章節補充。
但所謂的唯讀並非是指整個變數不變化,而是指不能二次賦值,一生綁定,比如指定小李成為小隊長之後,這個職位再也不能換成其他人,小李本身想卸任也不行,但是小李本身的屬性還是和其他士兵一樣可以變化,增減年紀。
反之, var 就代表在類別限制下可以自由任命,只要是士兵,都有機會當一日小隊長。
所謂參數 (Parameter),是函數開放接口給外部來源參與其中的機會,可以傳遞基本型別、物件或是函數;如果來的是物件,還有可能被改造,以改造後的屬性離開函數,就像是士兵收到突擊命令,可能會受傷而歸。
在類別裡,無論是自身宣告的變數或是來自第一建構子函數的變數參數,都算是給了一個名義,類別從此有這樣一個屬性 (Property),屬性生命週期和物件一樣,可以在適當情境延伸引用,比如士兵的年齡到了就該退伍。
如果沒有名義,那就像是曇花一現,過眼雲煙,只在傳入的那個時間那個地點存在,無法隨意應用。用過就丟的特性正適合子彈這類消耗品或是不留下紀錄的命令。
士兵類別裡命令變數只存在於第一建構子函數,同類別的其他函數也無法識別;也因為連屬性都不是,外部無法引用。
除了特例第一建構子函數以外,一般函數沒有屬性的概念,所以參數不接受非法設定 不存在的屬性;相對的,函數區塊裡可以宣告變數,和屬性的差異在於限定函數內部使用,生命週期和函數一樣。
函數和類別不同,沒有屬性的概念。加上 val, var 的行為是畫蛇添足,Compiler 不開心 。
參數會自動被歸類成函數的生命週期 val 變數,和前述規則相同,函數不能賦值參數,但是可以改變參數屬性。
參數會自動被歸類成函數的生命週期 val 變數,不能賦值。
幼齡化命令能作用於參數士兵。
建構子函數會在後面的章節說明。
avatar-img
6會員
45內容數
和 Kotlin 相關的系列文章。 給程式初學者的「Kotlin 學習系列」 給正在實戰的工程師「Kotlin 實戰系列」
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Kate的沙龍 的其他內容
接續上次的士兵類別,提到名字用了 String 變數。 String 是字串的意思,在 Kotlin 裡,常見變數可以分成幾個基本資料型別:數字(Number)、字串(String)、布林(Boolean)。 差別在於行為模式不同,以加法為例,數字執行數學課上的四則運算的加法,字串卻做了連接,布林則
作為指揮官,如果只有一個部下也太令人傷心了。 為能夠有效率的取得大量的士兵,使用類型(Type)來廉價批發。 建立一個檔案「士兵.kt」,這次選 class,讓 IDE 幫我們初始化類別的程式碼 。 建立一個檔案「士兵.kt」,選 class 。  IDE 預設將 class 取名和檔案一樣。 初級
程式是個單純的小伙子,他會按照程式碼的內容執行動作,所以我們可以把函數當作給他的指令「單位」,不是最小單位,就只是單位。 以下是令人熱血沸騰的情境: 「射擊準備!發射角度東偏南33度,目標距離200公尺,風向正西速度每小時100公里,氣溫38度,濕度百分之20。」 「yes, my master.」
現在,開始建立第一個檔案吧,一樣用最簡單的 Hello World 示範。 在 kotlin 資料夾按右鍵選擇 New 裡的 Kotlin File/Class 。 雖然有許多格式可以選,但其實只是 IDE 提供初始程式碼的差別,完全可以中途更改,我們這次選最基本的 File 格式就好。 命名檔案和
會撰寫 Hello World 程式,證明我們已經推開程式語言的大門,成為會寫這門語言的開發者,所以,現在就先來寫 Hello World 吧。 目標:印出 Hello World 這串文字。
所謂專案,就是項目,或者說是主題。 比如說我今天打算寫個猜數字遊戲,於是就建立一個名為「猜數字」的專案。 如果要和外國人合作開發,專案名稱取英文會比較好,雖然不是每個外國人英文都很好,但是工程師要有基本的英文閱讀能力,科技界很多第一手消息都是英文,我們用的開發介面 Intellij IDEA
接續上次的士兵類別,提到名字用了 String 變數。 String 是字串的意思,在 Kotlin 裡,常見變數可以分成幾個基本資料型別:數字(Number)、字串(String)、布林(Boolean)。 差別在於行為模式不同,以加法為例,數字執行數學課上的四則運算的加法,字串卻做了連接,布林則
作為指揮官,如果只有一個部下也太令人傷心了。 為能夠有效率的取得大量的士兵,使用類型(Type)來廉價批發。 建立一個檔案「士兵.kt」,這次選 class,讓 IDE 幫我們初始化類別的程式碼 。 建立一個檔案「士兵.kt」,選 class 。  IDE 預設將 class 取名和檔案一樣。 初級
程式是個單純的小伙子,他會按照程式碼的內容執行動作,所以我們可以把函數當作給他的指令「單位」,不是最小單位,就只是單位。 以下是令人熱血沸騰的情境: 「射擊準備!發射角度東偏南33度,目標距離200公尺,風向正西速度每小時100公里,氣溫38度,濕度百分之20。」 「yes, my master.」
現在,開始建立第一個檔案吧,一樣用最簡單的 Hello World 示範。 在 kotlin 資料夾按右鍵選擇 New 裡的 Kotlin File/Class 。 雖然有許多格式可以選,但其實只是 IDE 提供初始程式碼的差別,完全可以中途更改,我們這次選最基本的 File 格式就好。 命名檔案和
會撰寫 Hello World 程式,證明我們已經推開程式語言的大門,成為會寫這門語言的開發者,所以,現在就先來寫 Hello World 吧。 目標:印出 Hello World 這串文字。
所謂專案,就是項目,或者說是主題。 比如說我今天打算寫個猜數字遊戲,於是就建立一個名為「猜數字」的專案。 如果要和外國人合作開發,專案名稱取英文會比較好,雖然不是每個外國人英文都很好,但是工程師要有基本的英文閱讀能力,科技界很多第一手消息都是英文,我們用的開發介面 Intellij IDEA
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
無論你是內容創作者、學生還是專業工作者, 微論文都能幫助你提升寫作技能,精練思想。 微論文強調從經驗、意見和事件三方面入手, 使文章更具深度和多樣性。 在這篇文章中, 我將分享三個關於微論文的重要啟發, 幫助你更好地運用這種寫作方式。 ▋啟發1 - 深入理解
有一個東西叫「學習悖論」,是柏拉圖的美諾篇說的, 大意是這樣: 人沒辦法學習。 首先,一個人不能研究他知道的東西, 因為他已經知道了,無須再研究; 但是,他也不能研究他不知道的東西, 因為,他不知道他要研究的是什麼。 聽起來好像很詭異。 但是,先不要管裡面可能的邏輯、或歧義問
每當我學習新東西,總是感到無比的興奮。相較於買車出遊,我更喜歡透過摸索新事物來擴展自己的眼界。 ▋透過閱讀擴展視野 我主要透過購買書籍來進行探索,這也多虧父母從小到大提供的經濟支持。從幼稚園到博士畢業,我大概購買了四五千冊的書籍。父親甚至在我的房間外搭了一個鐵皮屋,專門用來存放我各式各樣
Thumbnail
@十年前,非常羨慕網路遊戲中,畫得美輪美奐的插畫,諸如龍,騎士,獅鷲怪物等等的電腦繪圖插畫。剛開始自己存錢買一塊日本的電腦繪圖板,想看youtube的電腦繪圖教學來畫,結果就畫成下面左邊那幅很好笑的德行(疑似幼稚園塗鴉)。 @後來有一次陪朋友去巨匠電腦報名,莫名其妙被櫃台小姐鼓動,用每期兩千元
本課程介紹如何學習 Kotlin 程式語言,KT 老師專門開設了一門從零開始學 Kotlin 程式設計的課程,非常適合對此有興趣的初學者。
Thumbnail
之前教過一位家教學生,每次來上課時總是笑著走進教室。 我問他:「你為什麼上課都這麼開心?」 他總說:「我也不知道。」聳聳肩並且笑一笑的回著我 不只是開心來上課,在整整兩小時的課程中,也總是一邊學習一邊在歡笑中渡過。時常連坐在教室外的人都聽到笑聲,好奇詢問我們到底在笑什麼。
Thumbnail
財經M平方的2022年總經論壇學習,就所聽的內容繼續延伸、挖掘、佐證。
Thumbnail
关于 Notion 的使用教程,在 Notion 相关社区已经有不少精品内容。这篇文章中,无意于探讨过于高级的技术,而是为准备使用 Notion 以及 相关的 FlowUs 用户提供一个详实、全面的使用教程。 本文会不定期更新。 数字花园:Notion 优质资源汇总) 使用反思 辅助工具·软件联动
Thumbnail
Roam Research 是最近几年,除了 Notion 以外,被广大笔记用户最为关注的产品。关于 Roam, 很多读者已经了解颇多。因此,对于 Roam 我只做简要评价,重点在于分享 Roam 使用所需要的学习资源和使用教程。 介绍 双链笔记赛道的开创者。 优点 📷 缺点 评价 免费使用
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
無論你是內容創作者、學生還是專業工作者, 微論文都能幫助你提升寫作技能,精練思想。 微論文強調從經驗、意見和事件三方面入手, 使文章更具深度和多樣性。 在這篇文章中, 我將分享三個關於微論文的重要啟發, 幫助你更好地運用這種寫作方式。 ▋啟發1 - 深入理解
有一個東西叫「學習悖論」,是柏拉圖的美諾篇說的, 大意是這樣: 人沒辦法學習。 首先,一個人不能研究他知道的東西, 因為他已經知道了,無須再研究; 但是,他也不能研究他不知道的東西, 因為,他不知道他要研究的是什麼。 聽起來好像很詭異。 但是,先不要管裡面可能的邏輯、或歧義問
每當我學習新東西,總是感到無比的興奮。相較於買車出遊,我更喜歡透過摸索新事物來擴展自己的眼界。 ▋透過閱讀擴展視野 我主要透過購買書籍來進行探索,這也多虧父母從小到大提供的經濟支持。從幼稚園到博士畢業,我大概購買了四五千冊的書籍。父親甚至在我的房間外搭了一個鐵皮屋,專門用來存放我各式各樣
Thumbnail
@十年前,非常羨慕網路遊戲中,畫得美輪美奐的插畫,諸如龍,騎士,獅鷲怪物等等的電腦繪圖插畫。剛開始自己存錢買一塊日本的電腦繪圖板,想看youtube的電腦繪圖教學來畫,結果就畫成下面左邊那幅很好笑的德行(疑似幼稚園塗鴉)。 @後來有一次陪朋友去巨匠電腦報名,莫名其妙被櫃台小姐鼓動,用每期兩千元
本課程介紹如何學習 Kotlin 程式語言,KT 老師專門開設了一門從零開始學 Kotlin 程式設計的課程,非常適合對此有興趣的初學者。
Thumbnail
之前教過一位家教學生,每次來上課時總是笑著走進教室。 我問他:「你為什麼上課都這麼開心?」 他總說:「我也不知道。」聳聳肩並且笑一笑的回著我 不只是開心來上課,在整整兩小時的課程中,也總是一邊學習一邊在歡笑中渡過。時常連坐在教室外的人都聽到笑聲,好奇詢問我們到底在笑什麼。
Thumbnail
財經M平方的2022年總經論壇學習,就所聽的內容繼續延伸、挖掘、佐證。
Thumbnail
关于 Notion 的使用教程,在 Notion 相关社区已经有不少精品内容。这篇文章中,无意于探讨过于高级的技术,而是为准备使用 Notion 以及 相关的 FlowUs 用户提供一个详实、全面的使用教程。 本文会不定期更新。 数字花园:Notion 优质资源汇总) 使用反思 辅助工具·软件联动
Thumbnail
Roam Research 是最近几年,除了 Notion 以外,被广大笔记用户最为关注的产品。关于 Roam, 很多读者已经了解颇多。因此,对于 Roam 我只做简要评价,重点在于分享 Roam 使用所需要的学习资源和使用教程。 介绍 双链笔记赛道的开创者。 优点 📷 缺点 评价 免费使用