-
GO語言 工作區和GOPATH(1)
查看全部 -
defer
攜帶的表達式語句代表的是對某個函數或方法的調用。這個調用可能會有參數傳入,比如:fmt.Print(i + 1)
。如果代表傳入參數的是一個表達式,那么在defer
語句被執行的時候該表達式就會被求值了。注意,這與被攜帶的表達式語句的執行時機是不同的。查看全部 -
如果在當時有數據的通道多于一個,那么Go語言會通過一種偽隨機的算法來決定哪一個
case
將被執行。?另一方面,對于包含通道發送操作的
case
來講,其執行條件就是通道中至少還能緩沖一個數據(或者說通道未滿)。類似的,當有多個case
中的通道未滿時,它們會被隨機選擇。該條
select
語句的兩個case
中包含的都是針對通道ch3
的發送操作。如果我們把這條語句置于一個循環中,那么就相當于用有限范圍的隨機整數集合去填滿一個通道。如果一條
select
語句中不存在default case
, 并且在被執行時其中的所有case
都不滿足執行條件,那么它的執行將會被阻塞!當前流程的進行也會因此而停滯。直到其中一個case
滿足了執行條件,執行才會繼續。未被初始化的通道會使操作它的
case
永遠滿足不了執行條件。對于針對它的發送操作和接收操作來說都是如此。
查看全部 -
一個指針類型擁有以它以及以它的基底類型為接收者類型的所有方法,而它的基底類型卻只擁有以它本身為接收者類型的方法。
查看全部 -
表達式
switch
語句類型
switch
語句
查看全部 -
但是當
&
和*
作為地址操作符出現時:
&的作用是取址,而*的作用是取值;
(更通俗地講,當地址操作符更通俗地講,當地址操作符
&
被應用到一個值上時會取出指向該值的指針值,而當地址操作符*
被應用到一個指針值上時會取出該指針指向的那個值。它們可以被視為相反的操作)當
*
出現在一個類型之前(如*Person
和*[3]string
)時就不能被看做是操作符了,而應該被視為?"一個符號"?。如此組合而成的標識符所表達的含義是作為第二部分的那個類型的指針類型。我們也可以把其中的第二部分所代表的類型稱為基底類型。例如,*[3]string
是數組類型[3]string
的指針類型,而[3]string
是*[3]string
的基底類型
-----------------------------------
注意,
Person
的兩個方法Grow
和Move
的接收者類型都是*Person
,而不是Person
。只要一個方法的接收者類型是其所屬類型的指針類型而不是該類型本身,那么我就可以稱該方法為一個指針方法。上面的Grow
方法和Move
方法都是Person
類型的“指針方法”(對應傳的如果是所屬類型本身而不是所屬類型的指針)。查看全部 -
函數類型聲明的寫法;
函數值(即“函數”)的寫法;
如果結果聲明是帶名稱的,那么它就相當于一個已被聲明但未被顯式賦值的變量。我們可以為它賦值且在
return
語句中省略掉需要返回的結果值查看全部 -
緩沖和非緩沖;
雙向與單向;
查看全部 -
暫存在通道值中的數據是先進先出的,即:越早被放入(或稱發送)到通道值的數據會越先被取出(或稱接收).
針對通道值的接收操作也可以有第二個結果值,其更深層次的原因是,如果在接收操作進行之前或過程中通道值被關閉了,則接收操作會立即結束并返回一個該通道值的元素類型的零值。按照上面的第一種寫法,我們無從判斷接收到零值的原因是什么。不過,有了第二個結果值之后,這種判斷就好做了。
查看全部 -
字典用于存儲鍵-元素對(更通俗的說法是鍵-值對)的"無序集合"
查看全部 -
數組值的容量總是等于其長度;
切片值的容量即為它的第一個元素值在其底層數組中的索引值與該數組長度的差值的絕對值;
【切片屬于“引用類型”——其零值為nil】
查看全部 -
`&myDog` 是指針類型,所以它擁有它本身及以它的基底類型(Dog)為接收者類型(func (dog Dog))的方法,所以`&myDog`擁有 Name() 和 Age()方法,是實現了Pet接口的;`myDog`的基底類型`Dog`只擁有以它本身為接受者類型的方法,也是Age和Name;
當將接受者類型改為(dog *Dog)時,對于指針類型,擁有Both,所以為true,而此時對于myDog,它沒有以它本身為接受者類型的方法,所以為false。
查看全部 -
字符串的兩種表示法:
?原生表示法:反引號``,所見即所得,除了回車.
?解釋型表示法:雙引號"",轉義符會在程序編譯期間被轉義.
%q用于顯示字符串值的表象值
查看全部 -
go get:
-d : 只執行下載動作, 不執行安裝動作
-fix :在下載代碼包后先執行修正動作,而后再進行編譯和安裝
-u : 利用網絡來更新已有的代碼包及其依賴包
查看全部 -
1 原生支持并發,與函數庫有所區別查看全部
舉報