3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
關(guān)鍵字type
用于創(chuàng)建新類型。這稱為類型定義。新類型(在您的例子中為 Vertex)將具有與基礎(chǔ)類型(具有 X 和 Y 的結(jié)構(gòu))相同的結(jié)構(gòu)。該行基本上是在說“基于 X int 和 Y int 的結(jié)構(gòu)創(chuàng)建一個(gè)名為 Vertex 的類型”。
不要混淆類型定義和類型別名。當(dāng)您聲明一個(gè)新類型時(shí),您不僅僅是給它一個(gè)新名稱——它將被視為一個(gè)獨(dú)特的類型。查看類型標(biāo)識(shí)以獲取有關(guān)該主題的更多信息。

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
它用于定義新類型。
一般格式:type <new_type> <existing_type or type_definition>
常見用例:
為現(xiàn)有類型創(chuàng)建新類型。
格式:type <new_type> <existing_type>
如type Seq []int
在定義結(jié)構(gòu)時(shí)創(chuàng)建類型。
格式:type <new_type> struct { /*...*/}
定義函數(shù)類型,(也就是通過將名稱分配給函數(shù)簽名)。
格式:type <FuncName> func(<param_type_list>) <return_type>
如type AdderFunc func(int, int) int
在你的情況下:
它定義了一個(gè)以新結(jié)構(gòu)命名的類型Vertex
,以便稍后您可以通過 引用該結(jié)構(gòu)Vertex
。

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
實(shí)際上 type 關(guān)鍵字與 PHP 中的類拓?fù)湎嗤?/p>
使用 type 關(guān)鍵字就像在 GO 中創(chuàng)建類一樣
結(jié)構(gòu)中的示例類型
type Animal struct {
name string //this is like property
}
func (An Animal) PrintAnimal() {
fmt.Println(An.name) //print properties
}
func main() {
animal_cow := Animal{ name: "Cow"} // like initiate object
animal_cow.PrintAnimal() //access method
}
好的,讓我們移動(dòng)字符串類型(對于int或float是相同的)
type Animal string
// create method for class (type) animal
func (An Animal) PrintAnimal() {
fmt.Println(An) //print properties
}
func main(){
animal_cow := Animal("Cow") // like initiate object
animal_cow.PrintAnimal() //access method
//Cow
}
struct和string、int、float之間的區(qū)別僅在struct中您可以添加具有任何不同數(shù)據(jù)類型的更多屬性
在string、int、float中相反,您只能擁有 1 個(gè)屬性,這些屬性是在您啟動(dòng)類型時(shí)創(chuàng)建的(例如:animal_cow := Animal("Cow")
但是,所有使用 type 關(guān)鍵字構(gòu)建的類型都可以有不止一種方法
如果我錯(cuò)了請糾正我
- 3 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報(bào)