亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Go語言第一課

郝林 架構師
難度入門
時長 3小時10分
學習人數
綜合評分8.57
92人評價 查看評價
9.0 內容實用
8.2 簡潔易懂
8.5 邏輯清晰
  • GO語言 工作區和GOPATH(1)

    查看全部
  • defer攜帶的表達式語句代表的是對某個函數或方法的調用。這個調用可能會有參數傳入,比如:fmt.Print(i + 1)。如果代表傳入參數的是一個表達式,那么在defer語句被執行的時候該表達式就會被求值了。注意,這與被攜帶的表達式語句的執行時機是不同的。

    查看全部
    1. 如果在當時有數據的通道多于一個,那么Go語言會通過一種偽隨機的算法來決定哪一個case將被執行。

    2. ?另一方面,對于包含通道發送操作的case來講,其執行條件就是通道中至少還能緩沖一個數據(或者說通道未滿)。類似的,當有多個case中的通道未滿時,它們會被隨機選擇。

    3. 該條select語句的兩個case中包含的都是針對通道ch3的發送操作。如果我們把這條語句置于一個循環中,那么就相當于用有限范圍的隨機整數集合去填滿一個通道。

    4. 如果一條select語句中不存在default case, 并且在被執行時其中的所有case都不滿足執行條件,那么它的執行將會被阻塞!當前流程的進行也會因此而停滯。直到其中一個case滿足了執行條件,執行才會繼續。

    5. 未被初始化的通道會使操作它的case永遠滿足不了執行條件。對于針對它的發送操作和接收操作來說都是如此。

    查看全部
  • 一個指針類型擁有以它以及以它的基底類型為接收者類型的所有方法,而它的基底類型卻只擁有以它本身為接收者類型的方法。

    查看全部
    • 表達式switch語句

    • 類型switch語句

    查看全部
  • 但是當&*

    • 作為地址操作符出現時:

      &的作用是取址,而*的作用是取值;

      (更通俗地講,當地址操作符更通俗地講,當地址操作符&被應用到一個值上時會取出指向該值的指針值,而當地址操作符*被應用到一個指針值上時會取出該指針指向的那個值。它們可以被視為相反的操作)

    • *出現在一個類型之前(如*Person*[3]string)時就不能被看做是操作符了,而應該被視為?"一個符號"?。如此組合而成的標識符所表達的含義是作為第二部分的那個類型的指針類型。我們也可以把其中的第二部分所代表的類型稱為基底類型。例如,*[3]string是數組類型[3]string的指針類型,而[3]string*[3]string的基底類型

    -----------------------------------

    注意,Person的兩個方法GrowMove的接收者類型都是*Person,而不是Person。只要一個方法的接收者類型是其所屬類型的指針類型而不是該類型本身,那么我就可以稱該方法為一個指針方法。上面的Grow方法和Move方法都是Person類型的“指針方法”(對應傳的如果是所屬類型本身而不是所屬類型的指針)。

    查看全部
    0 采集 收起 來源:Go語言-指針

    2018-10-29

    1. 函數類型聲明的寫法;

    2. 函數值(即“函數”)的寫法;

    如果結果聲明是帶名稱的,那么它就相當于一個已被聲明但未被顯式賦值的變量。我們可以為它賦值且在return語句中省略掉需要返回的結果值

    查看全部
    0 采集 收起 來源:Go語言-函數

    2018-10-28

  • 緩沖和非緩沖;

    雙向與單向;


    查看全部
  • 暫存在通道值中的數據是先進先出的,即:越早被放入(或稱發送)到通道值的數據會越先被取出(或稱接收).


    針對通道值的接收操作也可以有第二個結果值,其更深層次的原因是,如果在接收操作進行之前或過程中通道值被關閉了,則接收操作會立即結束并返回一個該通道值的元素類型的零值。按照上面的第一種寫法,我們無從判斷接收到零值的原因是什么。不過,有了第二個結果值之后,這種判斷就好做了。

    查看全部
  • 字典用于存儲鍵-元素對(更通俗的說法是鍵-值對)的"無序集合"

    查看全部
  • 數組值的容量總是等于其長度;

    切片值的容量即為它的第一個元素值在其底層數組中的索引值與該數組長度的差值的絕對值;

    【切片屬于“引用類型”——其零值為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 原生支持并發,與函數庫有所區別
    查看全部

舉報

0/150
提交
取消
課程須知
本課程的目的是帶領大家入Go語言的門,然后再猛推一把!需要一些Linux Shell的基礎,不熟悉Linux的童鞋,可以先去《Linux達人養成計劃Ⅰ》中修煉一下~~
老師告訴你能學到什么?
1、怎樣使用Go語言編程 2、怎樣才算會用Go語言編程 3、怎樣運用那些Go語言的特性去編程 4、Go語言的那些特性的實際益處在哪兒

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!