📕
Go 語言程式設計入門
  • 最新消息
  • 中文版更新日誌
  • 譯者誌謝
  • 01-起步走
    • 01.01-檔案與資料夾
    • 01.02-終端機(Terminal)
    • 01.03-文字編輯器
    • 01.04-Go 的工具
  • 02-你的第一個程式
    • 02.01-如何讀 Go 程式
    • 02.02-問題
  • 03-型別
    • 03.01-數字
    • 03.02-字串
    • 03.03-問題
  • 04-變數
    • 04.01-如何命名變數
    • 04.02-Scope(變數的作用範圍)
    • 04.03-常數(Constant)
    • 04.04-定義多個變數
    • 04.05-範例程式
    • 04.06-問題
  • 05-控制結構
    • 05.01-For
    • 05.02-If
    • 05.03-switch
    • 05.04-問題
  • 06-Array、Slice 與 Map
    • 06.01-陣列(Array)
    • 06.02-Slice
    • 06.03-Map
    • 06.04-問題
  • 07-函式
    • 07.01-你的第二個函式
    • 07.02-回傳多個值
    • 07.03-參數個數可變的函式(Variadic Function)
    • 07.04-Closure
    • 07.05-遞迴(Recursive)
    • 07.06-Defer, Panic & Recover
    • 07.07-Panic & Recover
    • 07.08-問題
  • 08-指標
    • 08.01-「*」與「&」運算符號
    • 08.02-new
    • 08.03-問題
  • 09-Struct 與 Interface
    • 09.01-struct
    • 09.02-Method
    • 09.03-Interface
    • 09.04-問題
  • 10-Concurrency(平行處理)
    • 10.01-Goroutine
    • 10.02-Channel
    • 10.03-問題
  • 11-Packages
    • 11.01-建立 Package
    • 11.02-文件
    • 11.03-問題
  • 12-測試
  • 13-The Core Packages
    • 13.01-字串
    • 13.02-輸入與輸出
    • 13.03-檔案與資料夾
    • 13.04-錯誤訊息
    • 13.05-Container 與 Sort
    • 13.06-雜湊&加解密
    • 13.07-伺服器
    • 13.08-解析命令列參數
    • 13.09-Synchronization Primitives(同步處理原始物件)
  • 14-下一步
    • 14.01-閱讀大師作品
    • 14.02-動手實作
    • 14.03-團隊合作
  • 15. 附錄-額外資源
Powered by GitBook
On this page
Edit on GitHub

03-型別

Types

我們在上一章用字串資料型別儲存 Hello World,資料型別將相關值的集合分類為一組,說明可進行的資料型別操作,以及定義儲存資料的方式。因為型別的概念不好掌握,所以在我們開始研究如何用 Go 實做以前,要先從幾個不同的觀點來看。

哲學家有時會對型別與 token 進行區分,比如假設你有一條叫做 Max 的狗,Max 就是 token(一個特殊的實體「instance」或成員),而 dog 就是型別(通用概念)。"Dog" 或 "dogness" 表示每條狗都有的一組屬性(property)。雖然過於簡化,不過我們可以這樣解釋:因為全部的狗都有 4 條腿,而 Max 是條狗,所以 Max 有 4 條腿。在程式語言中的型別以簡單的方式運作:全部的字串都有長度,而 x 是個字串,因此 x 有長度。

我們在數學經常談論集合,比如:ℝ(全部實數的集合)或 ℕ(全部自然數的集合)。這些集合的每個數與集合裡的其它成員共享屬性。比如全部的自然數都相關的:"對於全部的自然數 a、b 及 c,a + (b + c) = (a + b) + c,而 a × ( b × c ) = (a × b) × c"。在這個方式,集合就類似是程式語言的型別,因為一個屬性型別的每個值都彼此共用某些屬性。

Go 是個靜態型別的(statically typed)程式語言,這表示變數永遠有特定的型別,而且該型別無法改變。靜態型別或許一開始看起來很討人厭,你在最後編譯程式時會耗費大量的時間在修正程式,可是型別讓我們可以合理的解釋程式在做什麼,並找出各種常見的錯誤。

我們將詳細的探討幾個 Go 內建的資料型別。

Previous02.02-問題Next03.01-數字

Last updated 2 years ago