type student struct
type 結構體名字 struct
var s1 student=student
注意:順序初始化,每個成員必須初始化,在初始化時,值的順序與結構體成員的順序保持一致。
兩個結構體可以使用 == 或 != 運算子進行比較,但不支援 > 或 <,同型別的兩個結構體變數可以相互賦值。
s1:=student,student}
結構體也可以作為函式引數,進行傳遞,是值傳遞,如下所示:
package main
import
"fmt"
type student struct
func test(stu student)
func main()
test(s1)
fmt.println("s1",s1)
}輸出結果
stu
s1
package main
import "fmt"
func main()
輸出結果
i=100,p=0xc042052080
i=100,p=100
所以,*p的作用就是根據儲存的變數的位址,來操作變數的儲存單元(包括輸出變數儲存單元中的值,和對值進行修改)
指標變數,除了以上介紹的指向以外(p=&a),還可以通過new( )函式來指向。
具體的應用方式如下:
ackage main
import
"fmt"
func main()
輸出結果222
指標作為引數進行傳遞時,為引用傳遞,也就是傳遞的位址。
package main
import "fmt"
func swap(num1,num2 *int)
func main()
輸出結果
2010
前面在講解陣列的時候,我們用陣列作為函式引數,但是陣列作為引數進行傳遞是值傳遞,如果想引用傳遞,可以使用陣列指標。具體使用方式如下:
package main
import
"fmt"
func swap(p *[5]int)
func main()
swap(&a)
fmt.println(a)
}輸出結果
[1222
333444
555]
package main
import
"fmt"
func main()
輸出結果22
33
用結構體作為函式的引數,預設的是值傳遞,那麼通過結構體指標,可以實現結構體的引用傳遞。具體實現的方式如下:
package main
import
"fmt"
type student struct
func test(stu *student)
func main()
test(&s1)
fmt.println("s1",s1)
}輸出結果
stu &
s1
go語言學習筆記 結構體
go語言中,結構體的宣告非常類似c語言,具體定義方法如下 初始化方法有三種 package main import fmt 定義乙個結構體型別 type student struct func main fmt.println s1 s1 2.部分成員初始化,未初始化的變數被賦值為0 s2 stud...
go語言學習筆記
type info struct func main fmt.println info1 data,json.marshal info1 fmt.println string data 輸出 這裡要特別注意的是 json 冒號後面和雙引號之間千萬不要有空格!被坑慘了 go語言 import的包的前面...
Go語言 學習筆記
import 下劃線 如 import hello imp 的作用 當匯入乙個包時,該包下的檔案裡所有init 函式都會被執行,然而,有些時候我們並不需要把整個包都匯入進來,僅僅是是希望它執行init 函式而已。這個時候就可以使用 import 引用該包。即使用 import 包路徑 只是引用該包,...