go語言基礎(8)

2021-09-25 11:11:54 字數 1867 閱讀 4972

package main

import "fmt"

type person struct

//結構體巢狀結構體

type student struct

func main01() ,101,100}

結構體名稱.父類成員資訊

"張三"

stu.person.name="張三"

"男"fmt.println(stu)

}type person1 struct

type student1 struct

func main02() ,105,66}

//var per=person1

//將結構體變數 賦值給結構體指標型別

= "郭襄"

= "郭小姐"

= 101

= 78

fmt.println(stu)

fmt.println(stu.name)

fmt.println(stu.id)

fmt.println(stu.score)

}type person1 struct

type student1 struct

func main03() ,105,66}

//var per=person1

//將結構體變數 賦值給結構體指標型別

= "郭襄"

= "郭小姐"

= 101

= 78

fmt.println(stu)

fmt.println(stu.name)

fmt.println(stu.id)

fmt.println(stu.score)

}type testa struct

type testb struct

//注意結構體不能巢狀本結構體

//結構體可以巢狀本結構體指標型別 鍊錶

type testc struct

func main04() ,"男",19},4}

"姆巴佩"

"李四"

"男"fmt.println(s)}//

//func add(a,b int) int

//1、定義函式型別

//2、為已存在的資料型別起別名

type int int //1、預處理 2、編譯 3、彙編 4、鏈結

//方法

//func (方法接收者)方法名(引數列表)返回值型別

func (a int)add(b int)int

func main05()

type stu struct

//方法 值傳遞

func (s stu) printinfo()

// 位址傳遞

func (s *stu) editinfo(name string, age int, *** string)

func main06()

func main07()

物件.方法

var s1 stu = stu

s1.printinfo()

//(&s1).editinfo("林黛玉",16,"女")//ok

//結構體變數可以直接使用結構體指標對應的方法

s1.editinfo("林黛玉",16,"女")

s1.printinfo()

}//方法是全域性的 允許程式在所有檔案訪問 物件.方法

//父類不能繼承子類資訊

//子結構體繼承父類結構體 允許使用父類結構體成員 允許使用父類的方法

//方法重寫 在乙個物件中不能出現相同的方法名 方法的接收者 帶* 和不帶* 表示乙個相同的物件

//預設使用子類的方法 採用就進原則

GO學習 8 Go語言基礎之陣列

陣列是同一種資料型別元素的集合。在go語言中,陣列從宣告時就確定,使用時可以修改陣列成員,但是陣列大小不可變化。基本語法 定義乙個長度為3元素型別為int的陣列a var a 3 intvar 陣列變數名 元素數量 t比如 var a 5 int,陣列的長度必須是常量,並且長度是陣列型別的一部分。一...

go語言 8 語言陷阱

x int return t 呼叫f2返回5,因為defer改變的是新建的t變數的值 funcf1 r int return0 返回1,因為defer修改的r是返回值,所以返回值被修改了防止陷阱的辦法時f1的返回值不要命名,即去掉r 陣列都是值傳遞。包括 陣列間的直接賦值,陣列作為函式引數 陣列內嵌...

Go 語言基礎

go 語言內建的運算子有 1.算術運算子 2.關係運算子 3.邏輯運算子 4.位運算子 將其先轉換為二進位制數,在根據如下表規則 p q p q p q p q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1如假定 a 60 b 13 其二進位制數轉換為 a 0011...