09 | 字典的操作和約束 至今為止,我們講過的集合類的高級數據類型都屬於針對單一元素的容器。 它們或用連續存儲,或用互存指針的方式收納元素,這里的每個元素都代表了一個從屬某一類型的獨立值。 我們今天要講的字典(map)卻不同,它能存儲的不是單一值的集合,而是鍵值對的集合。 在 Go 語言 ...
接口類型的合理運用 前導內容:正確使用接口的基礎知識 在 Go 語言的語境中,當我們在談論 接口 的時候,一定指的是接口類型。因為接口類型與其他數據類型不同,它是沒法被實例化的。 更具體地說,我們既不能通過調用new函數或make函數創建出一個接口類型的值,也無法用字面量來表示一個接口類型的值。 對於某一個接口類型來說,如果沒有任何數據類型可以作為它的實現,那么該接口的值就不可能存在。 我已經在 ...
2021-10-27 23:24 0 278 推薦指數:
09 | 字典的操作和約束 至今為止,我們講過的集合類的高級數據類型都屬於針對單一元素的容器。 它們或用連續存儲,或用互存指針的方式收納元素,這里的每個元素都代表了一個從屬某一類型的獨立值。 我們今天要講的字典(map)卻不同,它能存儲的不是單一值的集合,而是鍵值對的集合。 在 Go 語言 ...
18 | if語句、for語句和switch語句 現在,讓我們暫時走下神壇,回歸民間。我今天要講的if語句、for語句和switch語句都屬於 Go 語言的基本流程控制語句。它們的語法看起來很朴素,但實際上也會有一些使用技巧和注意事項。我在本篇文章中會以一系列面試題為線索,為你講述它們的用法 ...
19 | 錯誤處理(上) 提到 Go 語言中的錯誤處理,我們其實已經在前面接觸過幾次了。 比如,我們聲明過error類型的變量err,也調用過errors包中的New函數。 我們說過error類型其實是一個接口類型,也是一個 Go 語言的內建類型。在這個接口類型的聲明中只包含了一個方法 ...
07 | 數組和切片 我們這次主要討論 Go 語言的數組(array)類型和切片(slice)類型。 它們的共同點是都屬於集合類的類型,並且,它們的值也都可以用來存儲某一種類型的值(或者說元素)。 不過,它們最重要的不同是:數組類型的值(以下簡稱數組)的長度是固定的,而切片類型的值(以下簡稱 ...
10 | 通道的基本操作 作為 Go 語言最有特色的數據類型,通道(channel)完全可以與 goroutine(也可稱為 go 程)並駕齊驅,共同代表 Go 語言獨有的並發編程模式和編程哲學。 Don’t communicate by sharing memory; share ...
13 | 結構體及其方法的使用法門 我們都知道,結構體類型表示的是實實在在的數據結構。一個結構體類型可以包含若干個字段,每個字段通常都需要有確切的名字和類型。 前導內容:結構體類型基礎知識 當然 ...
15 | 關於指針的有限操作 在前面的文章中,我們已經提到過很多次“指針”了,你應該已經比較熟悉了。不過,我們那時大多指的是指針類型及其對應的指針值,今天我們講的則是更為深入的內容。 讓我們先來復習一下。 對於基本類型Dog來說,*Dog就是它的指針類型。而對於一個Dog類型,值不為 ...
21 | panic函數、recover函數以及defer語句 (上) 在本篇,我要給你展示 Go 語言的另外一種錯誤處理方式。不過,嚴格來說,它處理的不是錯誤,而是異常,並且是一種在我們意料之外的程序異常。 前導知識:運行時恐慌 panic 這種程序異常被叫做 panic,我把它翻譯 ...