天天看點

go基礎程式設計 day-2

Go的常亮

關鍵字: Const

Go常亮的多個定義:

// 定義常亮的關鍵字 const

// 定義多個常亮
const(
    PI = 3.14
    const1 = "1"
    const2 = 2
    const3 = 3   
)      

全局變量的聲明與指派:

var (
    name = "wyc"
    name1 = 1
    name2 = 2
    name3 = 3
)      

一般類型聲明:

type (
    newType int
    type1 float32
    type2 string
    type3 byte
)      

Go的基本類型:

布爾型:
    - 長度 1位元組
    - 取值範圍: true、false
    - 注意事項: 不可以使用數字來代表true或false      
整型: int/uint
     - 根據運作平台可能為32或64位      
8位整型:  int8/uint8
    - 長度: 1位元組
    - 取值範圍:  -128~127 / 0~255      
位元組型: byte(uint8别名)      
16位整型:   int/uint16
    - 長度: 2位元組
    - 取值範圍:  -32768~32767 / 0~65535      
32位整型:   int32(rune)   int32/uint32
    - 長度: 4位元組
    - 取值範圍: -2^64/2~2^64/2-1/0~2^64-1      
64位整型:
    - 長度 8位元組
    - 取值範圍: -2^64/2~2^64/2-1/0~2^64-1      
浮點型: float32 / float64
    - 長度:  8/8字元
    - 小數位:  精确到7/15小數位      
複數類型:  complex64/complex128
    - 長度:  8/16位元組      
足夠儲存指針的32位或64位整數型:  uintptr      
// 其他值類型:
    - array、 struct、string      
// 引用類型: 
    - slice、map、chan


// 接口函數  :   inteface

// 函數接口  :   func      

類型零值:

  零值并不等于空值,而是當變量聲明為某種來興後的預設零值,通常情況下預設值為0,bool為false,string為空字元串。

類型别名:

type(
    byte   int8
    rune   int32
    文本   string   
)      

别名:

var a 文本
b = "你好中國"      

零值:

package main

import (
    "fmt"   
)

func main() {
    var a int
    fmt.Println(a)
}


// 結果: 0      

math包

math包可以檢查類型是否超出範圍

math.Min   記錄了一個最小值和一個最大值

int型的最小值:

math.MinInt8      int類型的最小值就會列印出來,    -128

類型聲明

package main

import (
    "fmt"   
)

// 類型的定義
type (
    byte  int8
    rune int32
    文本  string   
)

func main() {
    var a 文本
    a = "你好中國"
    fmt.Println(a)
}

// 在實際應用中最好還是不要使用中文,它有可能會引起一些不必要的錯誤。      

單個變量的聲明與指派 and 多個變量的聲明與指派

單個變量: 

  單個變量的聲明格式:    var <變量名稱> <變量類型>

       變量的指派的格式    :  <變量名稱> = <表達式>

       變量聲明的同時指派  :   var <變量名稱> <變量類型> = [表達式]

go基礎程式設計 day-2
go基礎程式設計 day-2

多個變量 : 

        全局變量的聲明格式:   var <變量名稱> <變量類型>

        全局變量的聲明不可以省略 var, 但可使用并行方式

        所有變量都可以使用類型推斷

        局部變量不可以使用 var() 的方式簡寫,隻能使用并行方式

var (
    // 正常方式
    aaa = "hello"
    // 使用并行方式以及類型推斷
    w,y,c = 11,22,33
    // ccc := 3 // 不可以省略 var
)      

多個變量:

// 多個變量聲明
var a,b,c,d int

// 多個變量指派
a,b,c,d = 1,2,3,4


// 多個變量聲明的同時指派
var w,y,c int = 1,2,3

// 省略變量類型,由系統推斷類型
var w,y,c = 1,2,3

// 多個變量的聲明與指派的最簡的寫法
w,y,c := 11,22,33      
package main

import (
   "fmt"
)

func main() {
    // var w,y,c int
    // w,y,c = 1,2,3
    w,y,c := 11,22,33
    fmt.Println(w,y,c)
}      
go基礎程式設計 day-2
go基礎程式設計 day-2

// 下劃線可以表示不需要的元素

package  main

import (
    "fmt"
)

func main() {
    w,_,c := 11,22,33
    fmt.Println(w,c)
}      
go基礎程式設計 day-2

變量的類型轉換

Go中不存在隐式轉換,所有類型轉換必須顯示聲明。

轉換隻能發生兩種互相相容的類型之間

類型轉換的格式:

<Value>[:] = <TypeOfValueA> (<ValueB>)      
package main

import (
    "fmt"
)

func main() {
   var a float32 = 1.1
   b := int(a)
   fmt.Println(b)
}      
go基礎程式設計 day-2
go基礎程式設計 day-2