1. 程式人生 > 實用技巧 >【go語言學習】type關鍵字

【go語言學習】type關鍵字

type是go語法裡的重要而且常用的關鍵字,type絕不只是對應於C/C++中的typedef。搞清楚type的使用,就容易理解go語言中的核心概念struct、interface、函式等的使用。

一、型別定義

1、定義結構體

使用type可以定義結構體

type Preson struct {
        name string
        age int
}
2、定義結構

使用type可以定義介面

type USB interface {
        start()
        end()
}
3、定義新的型別
type Type
4、函式型別

使用type定義函式型別

type fun func () int

二、類型別名

類型別名的寫法為:

type 別名 = Type

類型別名規定:TypeAlias 只是 Type 的別名,本質上 TypeAlias 與 Type 是同一個型別。就像一個孩子小時候有小名、乳名,上學後用學名,英語老師又會給他起英文名,但這些名字都指的是他本人。

三、型別定義和類型別名的區別

package main

import "fmt"

type newInt int

type myInt = int

func main() {
	var a newInt = 10
	var b myInt = 10
	// fmt.Println(a == b) //invalid operation: a == b (mismatched types newInt and int)
	fmt.Printf("%T, %T\n", a, b) //main.newInt, int
}

a的型別是main.newInt, b的型別是int, myInt型別只在程式碼中存在,編譯完成並不會有myInt型別。