Go 語言學習之路(四)

1.基本型別

Go 語言的型別有以下幾種

bool

string

int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr

byte // uint8 的別名

rune // int32 的別名
     // 代表一個 unicode (represents a Unicode code point)

float32 float64

complex64 complex128

範例程式碼

package main

import (
    "fmt"
    "math/cmplx"
)

var (
    ToBe   bool       = false
    MaxInt uint64     = 1<<64 - 1
    z      complex128 = cmplx.Sqrt(-5 + 12i)
)

func main() {
    const f = "%T(%v)\n"
    fmt.Printf(f, ToBe, ToBe)
    fmt.Printf(f, MaxInt, MaxInt)
    fmt.Printf(f, z, z)
}

輸出結果

bool(false)
uint64(18446744073709551615)
complex128((2+3i))

2. 常數

常數的定義與變數類似,只不過使用 const 關鍵字。
常數可以是字元、字串、布林或數字類型的值。
與 C 語言的 #define 類似。

範例程式碼

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)
}

輸出結果

Hello 世界
Happy 3.14 Day
Go rules? true

3. 數值常數

數值常數是高精準度的「值」。
一個未指定類型的常量由上下文來決定其類型。
試一下輸出 needInt(Big) 吧。

範例程式碼

package main

import "fmt"

const (
    Big   = 1 << 100
    Small = Big >> 99
)

func needInt(x int) int { return x*10 + 1 }
func needFloat(x float64) float64 {
    return x * 0.1
}

func main() {
    fmt.Println(needInt(Small))
    fmt.Println(needFloat(Small))
    fmt.Println(needFloat(Big))
}

輸出結果

21
0.2
1.2676506002282295e+29

此為個人學習 Go 語言的過程記錄僅供參考,如有錯誤歡迎回報討論。
部分語句引用官方的說明。
部分用字遣詞可能會與他人理解有出入,歡迎討論。

comments powered by Disqus