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

閱讀時間約 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 變數,不能賦值。
幼齡化命令能作用於參數士兵。
建構子函數會在後面的章節說明。
6會員
45內容數
和 Kotlin 相關的系列文章。 給程式初學者的「Kotlin 學習系列」 給正在實戰的工程師「Kotlin 實戰系列」
留言0
查看全部
發表第一個留言支持創作者!
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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
無論你是內容創作者、學生還是專業工作者, 微論文都能幫助你提升寫作技能,精練思想。 微論文強調從經驗、意見和事件三方面入手, 使文章更具深度和多樣性。 在這篇文章中, 我將分享三個關於微論文的重要啟發, 幫助你更好地運用這種寫作方式。 ▋啟發1 - 深入理解
有一個東西叫「學習悖論」,是柏拉圖的美諾篇說的, 大意是這樣: 人沒辦法學習。 首先,一個人不能研究他知道的東西, 因為他已經知道了,無須再研究; 但是,他也不能研究他不知道的東西, 因為,他不知道他要研究的是什麼。 聽起來好像很詭異。 但是,先不要管裡面可能的邏輯、或歧義問
每當我學習新東西,總是感到無比的興奮。相較於買車出遊,我更喜歡透過摸索新事物來擴展自己的眼界。 ▋透過閱讀擴展視野 我主要透過購買書籍來進行探索,這也多虧父母從小到大提供的經濟支持。從幼稚園到博士畢業,我大概購買了四五千冊的書籍。父親甚至在我的房間外搭了一個鐵皮屋,專門用來存放我各式各樣
Thumbnail
@十年前,非常羨慕網路遊戲中,畫得美輪美奐的插畫,諸如龍,騎士,獅鷲怪物等等的電腦繪圖插畫。剛開始自己存錢買一塊日本的電腦繪圖板,想看youtube的電腦繪圖教學來畫,結果就畫成下面左邊那幅很好笑的德行(疑似幼稚園塗鴉)。 @後來有一次陪朋友去巨匠電腦報名,莫名其妙被櫃台小姐鼓動,用每期兩千元
本課程介紹如何學習 Kotlin 程式語言,KT 老師專門開設了一門從零開始學 Kotlin 程式設計的課程,非常適合對此有興趣的初學者。
Thumbnail
之前教過一位家教學生,每次來上課時總是笑著走進教室。 我問他:「你為什麼上課都這麼開心?」 他總說:「我也不知道。」聳聳肩並且笑一笑的回著我 不只是開心來上課,在整整兩小時的課程中,也總是一邊學習一邊在歡笑中渡過。時常連坐在教室外的人都聽到笑聲,好奇詢問我們到底在笑什麼。
Thumbnail
財經M平方的2022年總經論壇學習,就所聽的內容繼續延伸、挖掘、佐證。
Thumbnail
关于 Notion 的使用教程,在 Notion 相关社区已经有不少精品内容。这篇文章中,无意于探讨过于高级的技术,而是为准备使用 Notion 以及 相关的 FlowUs 用户提供一个详实、全面的使用教程。 本文会不定期更新。 数字花园:Notion 优质资源汇总) 使用反思 辅助工具·软件联动
Thumbnail
Roam Research 是最近几年,除了 Notion 以外,被广大笔记用户最为关注的产品。关于 Roam, 很多读者已经了解颇多。因此,对于 Roam 我只做简要评价,重点在于分享 Roam 使用所需要的学习资源和使用教程。 介绍 双链笔记赛道的开创者。 优点 📷 缺点 评价 免费使用
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
無論你是內容創作者、學生還是專業工作者, 微論文都能幫助你提升寫作技能,精練思想。 微論文強調從經驗、意見和事件三方面入手, 使文章更具深度和多樣性。 在這篇文章中, 我將分享三個關於微論文的重要啟發, 幫助你更好地運用這種寫作方式。 ▋啟發1 - 深入理解
有一個東西叫「學習悖論」,是柏拉圖的美諾篇說的, 大意是這樣: 人沒辦法學習。 首先,一個人不能研究他知道的東西, 因為他已經知道了,無須再研究; 但是,他也不能研究他不知道的東西, 因為,他不知道他要研究的是什麼。 聽起來好像很詭異。 但是,先不要管裡面可能的邏輯、或歧義問
每當我學習新東西,總是感到無比的興奮。相較於買車出遊,我更喜歡透過摸索新事物來擴展自己的眼界。 ▋透過閱讀擴展視野 我主要透過購買書籍來進行探索,這也多虧父母從小到大提供的經濟支持。從幼稚園到博士畢業,我大概購買了四五千冊的書籍。父親甚至在我的房間外搭了一個鐵皮屋,專門用來存放我各式各樣
Thumbnail
@十年前,非常羨慕網路遊戲中,畫得美輪美奐的插畫,諸如龍,騎士,獅鷲怪物等等的電腦繪圖插畫。剛開始自己存錢買一塊日本的電腦繪圖板,想看youtube的電腦繪圖教學來畫,結果就畫成下面左邊那幅很好笑的德行(疑似幼稚園塗鴉)。 @後來有一次陪朋友去巨匠電腦報名,莫名其妙被櫃台小姐鼓動,用每期兩千元
本課程介紹如何學習 Kotlin 程式語言,KT 老師專門開設了一門從零開始學 Kotlin 程式設計的課程,非常適合對此有興趣的初學者。
Thumbnail
之前教過一位家教學生,每次來上課時總是笑著走進教室。 我問他:「你為什麼上課都這麼開心?」 他總說:「我也不知道。」聳聳肩並且笑一笑的回著我 不只是開心來上課,在整整兩小時的課程中,也總是一邊學習一邊在歡笑中渡過。時常連坐在教室外的人都聽到笑聲,好奇詢問我們到底在笑什麼。
Thumbnail
財經M平方的2022年總經論壇學習,就所聽的內容繼續延伸、挖掘、佐證。
Thumbnail
关于 Notion 的使用教程,在 Notion 相关社区已经有不少精品内容。这篇文章中,无意于探讨过于高级的技术,而是为准备使用 Notion 以及 相关的 FlowUs 用户提供一个详实、全面的使用教程。 本文会不定期更新。 数字花园:Notion 优质资源汇总) 使用反思 辅助工具·软件联动
Thumbnail
Roam Research 是最近几年,除了 Notion 以外,被广大笔记用户最为关注的产品。关于 Roam, 很多读者已经了解颇多。因此,对于 Roam 我只做简要评价,重点在于分享 Roam 使用所需要的学习资源和使用教程。 介绍 双链笔记赛道的开创者。 优点 📷 缺点 评价 免费使用