go type別名和定義型別區別

2022-08-27 17:48:14 字數 711 閱讀 5644

package main

import (

"fmt"

)type person struct

func (p person)testper()

// 注意兩者區別

//type man person 另外型別

type man = person // 別名

func (m man) getage() int

func main()

per := person

fmt.printf("%t --%t\n", m, per)

fmt.println(m.getage())

fmt.println(m.name)

per.getage()

}

輸出:

main.person  --main.person

10hahha

定義型別別名的寫法為:

type typealias = type
型別別名規定:typealias 只是 type 的別名,本質上 typealias 與 type 是同乙個型別

而上面**中//type man person   則是另外乙個型別  即main.man     並具備的person欄位

兩者擁有相同的特性,但兩者是不同的型別

定義型別別名 typedef,using

說到型別別名,無非是給型別名 如int,char,float,double,bool 取乙個比較有特殊含義的名字而已 最常用的關鍵莫過於typedef吧 typedef最常見的用法是與結構體struct連用,這是c語言的語法,c 已經不這樣用了 或者很少這樣用 在c語言中宣告結構體常用以下格式 1 ...

Go中型別斷言 別名型別 型別定義

type assertions x.t 斷言x不是空值,並且x中儲存的值屬於t型別。符號x.t 稱為型別斷言。如果t不是介面型別,x.t 斷言x的動態型別與t型別相同。在這種情況下,t必須實現x的 介面 型別 否則,型別斷言是無效的,因為x不可能儲存t型別的值。如果t是介面型別,則x.t 斷言x的動...

C 11 using定義型別別名 模板別名

在c 98 03裡,我們可以通過typedef 關鍵字定義乙個型別的別名,比如 typedef unsigned int uint t 在這裡我們定義了unsigned int型別的別名和uint t,在以後需要使用unsigned int的時候我們都可以用uint t替換,但是uint t僅僅是作...