1. 程式人生 > >GO語言學習總結(variable, data type)

GO語言學習總結(variable, data type)

1. variable

1.1 變數使用關鍵字 var 定義。變數是強型別的。

package main

import "fmt"

var i int
var c, python, java bool

func main() {
    fmt.Println(i, c, python, java)
}

1.2 定義變數時候可以不指定型別,而是通過賦值獲得型別

package main

import "fmt"

var i, j int = 1, 2
var c, python, java = true, false, "no!"

func main
() { fmt.Println(i, j, c, python, java) }

1.3 函式內臨時變數定義,通過 := 定義

package main

import "fmt"

func main() {
    var i, j int = 1, 2
    k := 3
    c, python, java := true, false, "no!"      
    fmt.Println(i, j, k, c, python, java)
}

2. data type

2.1 所有的資料型別

bool

string

int  int8
int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte // alias for uint8 rune // alias for int32 // represents a Unicode code point float32 float64 complex64 complex128

2.2 所有的資料型別必須顯示轉換,否則會編譯錯誤

var i int = 42
var f float64 = float64(i)
var u uint = uint(f)

2.3 常量

  • 常量可以是數字,字串,字元,布林型別
  • 常量的申明與變數相同,只是在前面加上const關鍵字
  • 常量不能使用 := 賦值
package main

import "fmt"

const Pi = 3.14

func main() {
    const World = "世界"
    fmt.Println("Hello", World)
    fmt.Println("Happy", Pi, "Day")
    const Truth = true
    fmt.Println("Go rules?", Truth)
}

3. struct

struct與C語言幾乎一樣,使用tpyestruct關鍵字定義。

package main

import "fmt"

type Vertex struct {
    X int
    Y int
}

func main() {
    fmt.Println(Vertex{1, 2})
}

3.1 使用“點”訪問結構體內的變數

package main

import "fmt"

type Vertex struct {
    X int
    Y int
}

func main() {
    v := Vertex{1, 2}
    v.X = 4
    fmt.Println(v.X)
}

Java中沒有struct還真是不完美。定義一個結構體要多寫好多程式碼。

3.2 構造時候指定變數名稱賦值

package main

import "fmt"

type Vertex struct {
    X, Y int
}

var (
    p = Vertex{1, 2}  // has type Vertex
    q = &Vertex{1, 2} // has type *Vertex
    r = Vertex{X: 1}  // Y:0 is implicit
    s = Vertex{}      // X:0 and Y:0
)

func main() {
    fmt.Println(p, q, r, s)
}