天天看點

GO語言struct文法

struct

-使用type<Name>struct{}定義結構,名稱遵循可見性規則

-支援指向自身的指針類型成員

-支援匿名結構、可作用成員或定義成員變量

-匿名結構也可以用于MAP的值

-可以使用字面值對結構進行初始化

-允許值通過指針來讀寫結構成員

-相同類型的成員可進行直接拷貝指派

-支援==與!=比較運算符,不支援>或<

-支援匿名字段,本質上是定義了以某個類型名稱的字段

-嵌入結構作為匿名字段看起來像繼承、但不是繼承

-可以使用匿名字段的指針

package main

import "fmt"

type test struct{}

func main(){

a :=test{}

fmt.Println(a)

}

//匿名結構

func main() {

a := struct {

Name string

Age  int

}{

Name: "aa",

Age:  19,

type test struct{

Age int

a :=test{

Name:"coolqi",  //設定字面值初始化

a.Age=19//

type humen struct{

Sex int

type Teacher struct{

humen

type Student struct{

humen    //這裡的嵌入式是一個匿名的字段,本質上是将結構的名稱作為字段名稱,若需要作為字面值初始化,需要做humen:humen{Sex:1}

a :=Teacher{Name:"joe",Age:19,humen:humen{Sex:1}}//在嵌入式結構中,

本文轉自 DBAspace 51CTO部落格,原文連結:http://blog.51cto.com/dbaspace/1963454