1. 程式人生 > 實用技巧 >go 學習筆記基礎篇(一)

go 學習筆記基礎篇(一)

golang

變數宣告

  1. var 宣告單個變數

    var 變數名稱 型別
    
    變數名稱命名:
        a. 字母、數字、下劃線組成,首字母不能為數字
        b. 變數名稱區分大小寫
        c. 關鍵字 保留字不可作為變數名稱
        d. 建議使用駝峰式命名,大寫表示公有(StudentAge),小寫表示私有(studentAge)
        e. 特有名詞根據是否私有全大寫或小寫
    
    變數聲明後沒有初始化的話, 值為型別預設值
    變數聲明後使用,同一個作用域不可重複宣告
    
  2. 變數初始化方式

    1. 先聲明後賦值

      func main() {
          var a string
          a = "test"
          // 輸出變數型別
          fmt.Printf("a=%v a的型別是%T", a, a)
      }
      
    2. 宣告同時賦值

      func main() {
          var a string = "test"
          fmt.Printf("a=%v a的型別是%T", a, a)
      }
      
    3. 型別推導

      func main() {
          var a = "test"
          fmt.Printf("a=%v a的型別是%T", a, a)
      }
      
  3. 一次宣告多個變數

    func main(){
        // 一次宣告多個變數
        // var a, b, c = 10, 23, 46
        var (
            a int
            b string
            c string
        )
        a = 30
        b = "test"
        c = "hello"
        fmt.Printf("a=%v b=%v c=%v", a, b, c)
    }
    
  4. 短變數宣告法(只能宣告區域性變數)

    變數名稱 := 初始值
    
    短變數宣告一次宣告多個變數 a,b,c := 10,4,"test"
    
  5. 匿名變數

    • 不佔用名稱空間,不存在重複宣告問題
    • 當函式返回兩個值,但只需要使用其中一個值時,另一個返回值可用匿名變數接收
    • "_"

常量 [const] 大寫

  1. 定義時必須賦值
    const a = 10
    
  2. 常量的值不可改變
  3. const 同時宣告多個常量,如果只對第一個值賦值,則表示剩下為賦值常量值與第一個值保持一致
    const (
    	a = 10
    	b
    	c
    )
    fmt.Println(a, b, c)
    
  4. const 和 iota 聯合使用
    func main(){
        const (
            a = iota // 0
            b        // 1
            c        // 2
        )
        fmt.Println(a, b, c)
    
        const (
            n1 = iota // 0
            n2 = 100  // 100 插隊
            n3 = iota // 3 可跳過
            n4        // 4
        )
        fmt.Println(n1, n2, n3, n4)
    }
    

資料型別

基本資料型別

  1. int 整型 預設int為int64 佔8個位元組

    有符號整型

    • int8 記憶體空間中佔1位元組 -128~127
    • int16 2位元組
    • int32 4位元組
    • int64 8位元組

    無符號整型

    • uint8 0-255
    • uint16
    • uint32
    • uint64

    位元組:

     1024Bety(位元組) = 1KB
    

    可以通過unsafe.Sizeof(num) 檢視所佔位元組數

  2. 浮點型

    • float32 佔4個位元組
    • float64 佔8個位元組

    浮點型格式化輸出 佔位符'%f'預設保留6位小數,4舍5入, 自定義保留小數位 例如:"%.2f"

  3. 布林型別 bool

    Go 中布林型別 只有 true和false兩個值
    注意:
        a. 布林型別變數的預設值為false
        b. Go 語言中不允許將整型強制轉換為bool型別
        c. bool型別無法參與數值運算,也不可以和其他型別進行轉換
    
  4. 字串型別 string

    • Go中字串需要使用雙引號
    • 字串轉義符 \
    • 多行字串用反引號 ``
    • 一個字母佔一個位元組,一個漢字佔三個位元組
    • 拼接字串可以使用 ‘+’號或者 使用 Sprintf 例如:str3 := fmt.Sprintf("%v %v", str1, str2)
    • 使用 strings 做字串的常用操作
  5. byte 和 rune型別 (字元)

    • 字元屬於int 型
    • 字元使用單引號
    • golang 漢字使用utf8編碼, 編碼後的值是int型別
    • unit8型別 也叫byte型別,代表ascii 碼的一個字元
    • rune 型別 代表一個utf8字元,rune型別相容byte型別資料