go語言類型別名與類型聲明

目錄

  1. 語法
  2. GO語言類型別名
  3. GO語言類型聲明
go語言類型別名與類型聲明

語法

type name = string // 類型別名
type name string // 類型聲明
  • type name string 將name定義為一個新的類型,該類型擁有和string一樣的特性,但是兩者是不用的類型,不可用+進行拼接等運算。
  • type name = string 將name定義為string的一個別名,使用name和string相同。二者可以當做同一種類型運算。別名只在源碼中存在,編譯完成後,不會有別名類型。

GO語言類型別名

該類型擁有和string一樣的特性,但是兩者是不用的類型,不可用+進行拼接等運算。

package main
import "fmt"
type name = string
var myName name = "go"
var str string = " good"
func main() {
fmt.Printf("%T, %v\\n", myName, myName) //string, go
fmt.Printf("%T, %v\\n", str, str) //string, good
fmt.Println(myName+str) //編譯正常,輸出:go good
}

使用name和string相同。二者可以當做同一種類型運算。別名只在源碼中存在,編譯完成後,不會有別名類型。

package main
import "fmt"
type name string
var myName name = "go"
var str string = " good"
func main() {
fmt.Printf("%T, %v\\n", myName, myName) //main.name, go
fmt.Printf("%T, %v\\n", str, str) //string, good
fmt.Println(myName+str) //編譯時會報錯: invalid operation:myName + str (mismatched types name and string)
}


分享到:


相關文章: