• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            zhiye_wang

            向星空仰望的越深,越發現自己的渺小

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              31 隨筆 :: 1 文章 :: 2 評論 :: 0 Trackbacks

            Go 語言教程筆記(一)

            一 Go 語言環境設置 

            本地環境設置

            在這里我們介紹設置Go編程語言環境,需要在你的計算機上的準備以下兩個軟件,(A)文本編

            輯器和(B)Go編譯器。

            文本編輯器

            我的環境是ubuntu,直接用 vim

            Go編譯器

            ubuntu下面直接安裝

            # apt-get install golang


            例子:

            # vim hello.go

              1 package main

              2 

              3 import fmt "fmt"

              4 

              5 func main() {

              6     fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界 ");

              7 }                                                                        

            go語言中如果有if等后面需要跟大括號的語句,強制使用大擴號跟if寫在一行


            編譯運行:

            # go run hello.go 

            Hello, world; or Καλημέρα κόσμε; or こんにちは 世界


            二 Go 語言程序結構 

            在我們學習Go編程語言的基本構建模塊,看看一個最低限度的Go程序結構,這樣我們

            就可以把它作為即將到來的章節的參考。

            Go 程序包含以下部分

            包聲明

            導入包

            函數

            變量

            語句和表達式

            注釋

            例如:

             1 package main

              2 

              3 import fmt "fmt"

              4 

              5 func main() {

              6     fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界 ");

              7 }  

            第一行定義了這個程序包的名稱。這是一個必須聲明為Go程序運行在什么包。main包是起始

            點來運行程序。每個包都有一個與之關聯的路徑和名稱。

            下一行import "fmt" 是告訴編譯器去包含文件在包fmt的預處理命令。

            下一行 func main()主要功能是為程序執行的開始。

            如果有注釋,/*...*/會被編譯器被忽略,它已被加入到程序添加注釋。因此,這樣的行稱為程

            序中的注釋。注釋也使用//類似于Java或C++注釋。

            下一行 fmt.Println(...)是提供另一種功能,使消息“Hello, World!”要顯示在屏幕上。這

            里fmt包已導出。


            三 Go 語言的基本語法

            標識符

            Go語言不允許標識符中的標點字符,如@,$和%。

            Go是一種區分大小寫的編程語言

            Manpower 和 manpower 在Go中是兩個不同的標識符

            標識符開始以字母A到Z或a到z或下劃線_后跟零個或多個字母,下劃線和數字(0?9)

            關鍵詞

            下面的列表顯示了Go的保留字。這些保留的字可以不被用作常量或變量,或任何其他的標識符

            名稱。

            break  default  func  interface  select

            case  defer  go  map  struct

            chan  else  goto  package  switch

            const  fallthrough  if  range  type

            continue  for  import  return  var

            在 Go 中空白格

            僅包含空格,可能與注釋行,被稱為一個空行,Go編譯器完全忽略它。

            var age int;

            必須有至少一個空白字符(通常是一個空格)int和age之間的編譯器,以便能夠區分它們

            fruit = apples + oranges;   // get the total fruit

            fruit和=之間或=和apples,雖然是自由的,如果想便于閱讀的目的,最好包括一些空格


            四 Go 語言數據類型

            在Go編程語言,數據類型指用于聲明變量或不同類型的功能的廣泛的系統。變量的類型決定了

            有多少空間占用的存儲和存儲方式的位模式將被解釋。

            Go的數據類型可分類如下:

            Boolean Types

            它們是布爾類型,它由兩個預定義的常量:(a) true (b) false

            Numeric Types

            它們是算術類型,表示整數類型或b。在整個程序浮點值

            string types:

            一個字符串類型代表組字符串值。它的值是一個字節序列。字符串是一次創造了穩定的類型,

            這是不可能改變一個字符串的內容。預聲明的字符串類型為字符串。

            Derived types:

            它們包括:(a)指針類型,(b)數組類型,(c)結構類型,(d)聯盟類型及(e)函數類型(f)切片類(g)

            函數類型(h)接口類型(i)地圖類型(j)管道類型。

            數組類型和結構類型被統稱為聚合類型。函數的類型指定的一組具有相同的參數和結果類型所

            有函數。

            整數

            1 uint8

            8位無符號整數 (0 - 255)

            2 uint16

            16位無符號整數 (0 - 65535)

            3 uint32

            32位無符號整數 (0 - 4294967295)

            4  uint64

            64位無符號整數 (0 - 18446744073709551615)

            5  int8

            有符號8位整數 (-128 - 127)

            6  int16

            有符號16位整數 (-32768 - 32767)

            7  int32

            有符號的32位整數 (-2147483648 - 2147483647)

            8  int64

            有符號的64位整數 (-9223372036854775808 - 9223372036854775807)

            浮點類型

            1  float32

            IEEE-754 32-bit 浮點數

            2  float64

            IEEE-754 64-bit 浮點數

            3  complex64

            復數與float32實部和虛部

            4  complex128

            復數與float64實部和虛部

            其他數值類型

            1  byte

            相同于 uint8

            2  rune

            相同于 int32

            3  uint

            32 或 64 位

            4  int

            相同于 uint 的大小

            5  uintptr

            一個無符號整數來存儲指針值的解釋的比特位


            五 Go 語言變量

            變量是什么,只不是給定到存儲區域,我們的程序可以操縱的名稱。在Go中每個變量具有特定

            的類型,它確定的大小和可變的存儲器的布局;能確定存儲器內存儲的值的范圍;和組操作可以施

            加到變量。

            一個變量名可以由字母,數字和下劃線。它必須以字母或下劃線。大寫和小寫字母是不同的,因

            為Go是區分大小寫的。基于該基本類型在前面的章節中說明的那樣,將有以下基本變量類型:

            byte  通常單個字節(一個字節),這是一個字節的類型

            int  整數最自然的尺寸的機器

            float32  單精度浮點值

            Go編程語言也可以定義各種其他類型的變量,我們將在以后的章節列出,如:枚舉,指針,數

            組,結構,聯合,等等。

            Go中變量定義

            var variable_list optional_data_type;

            optional_data_type可以包括字節,整型,float32,complex64,布爾或任何用戶定義的對象

            等有效Go的數據類型,variable_list可以由用逗號分隔的一個或多個標識符名稱。一些有效的聲

            明如下所示:

            var    i, j, k int;

            var   c, ch byte;

            var  f, salary float32;

            d = 42;

            var i, j, k; 既聲明并定義了變量i,j和k;這指示編譯器創建一個名為i,j和k的 int類型變量。變量

            可以再聲明時候初始化。變量的類型是由編譯器自動根據傳遞給它的值判斷。

            variable_name = value;

            d = 3, f = 5;    // declaration of d and f. Here d and f are int 

            對于沒有初始化定義:具有靜態存儲時間變量的隱含零初始化(所有字節的值為0);所有其它變量

            的初始值是它們的數據類型的零值。

            靜態類型聲明

            package main

            import "fmt"

            func main() {

               var x float64

               x = 20.0

               fmt.Println(x)

               fmt.Printf("x is of type %T ", x)

            }

            編譯運行結果是:

            20

            x is of type float64

            動態類型聲明/類型推斷

            示例

            試試下面的例子,其中的變量已經聲明沒有任何類型的,并已確定在主函數中初始化。如果類型推斷的,我們已經初始化的變量y使用:=運算符,x初始化使用=運算符。

            package main

            import "fmt"

            func main() {

               var x float64 = 20.0

               y := 42 

               fmt.Println(x)

               fmt.Println(y)

               fmt.Printf("x is of type %T ", x)

               fmt.Printf("y is of type %T ", y)  

            }

            編譯和運行上面的程序,這將產生以下結果:

            20

            42

            x is of type float64

            y is of type int

            混合變量聲明

            不同類型的變量可以一步到位使用類型推斷聲明。

            package main

            import "fmt"

            func main() {

               var a, b, c = 3, 4, "foo"  

               fmt.Println(a)

               fmt.Println(b)

               fmt.Println(c)

               fmt.Printf("a is of type %T ", a)

               fmt.Printf("b is of type %T ", b)

               fmt.Printf("c is of type %T ", c)

            }

            編譯和運行上面的程序,這將產生以下結果:

            3

            4

            foo

            a is of type int

            b is of type int

            c is of type string

            posted on 2016-03-28 15:33 zhiye_wang 閱讀(339) 評論(0)  編輯 收藏 引用 所屬分類: docker
            久久亚洲精品成人AV| 色99久久久久高潮综合影院| 中文字幕无码精品亚洲资源网久久 | 久久九九久精品国产免费直播| 7国产欧美日韩综合天堂中文久久久久| 久久国产精品99精品国产| 久久精品国产一区二区三区| AV无码久久久久不卡蜜桃| 狠狠精品久久久无码中文字幕 | 亚洲精品NV久久久久久久久久| 18禁黄久久久AAA片| 国产精品美女久久久久久2018| 热综合一本伊人久久精品| avtt天堂网久久精品| 色天使久久综合网天天| 国产精品亚洲美女久久久| 色综合久久综合中文综合网| 精品久久久久久无码中文字幕 | 老色鬼久久亚洲AV综合| 色综合久久中文字幕综合网| 1000部精品久久久久久久久| 久久天天躁狠狠躁夜夜2020一| 成人亚洲欧美久久久久| 久久人人爽人人爽人人片AV不 | 久久久一本精品99久久精品88| 一级a性色生活片久久无少妇一级婬片免费放| 久久久国产亚洲精品| 久久这里有精品视频| 久久久久国产一区二区三区| 久久99毛片免费观看不卡| 久久国产亚洲精品无码| 色妞色综合久久夜夜| 久久婷婷国产综合精品| 九九精品99久久久香蕉| 2021少妇久久久久久久久久| 国产精品美女久久久m| 久久电影网2021| 精品综合久久久久久888蜜芽| 久久精品国产99久久久| 国产欧美久久久精品| 国产精品内射久久久久欢欢|