您好,登錄后才能下訂單哦!
Go語言編程中struct結構的作用是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
struct的申明
復制代碼 代碼如下:
package main
import "fmt"
type Person struct {
Age int
Name string
}
func main() {
//初始化兩種
a := Person{}
a.Age = 2
a.Name = "widuu"
fmt.Println(a)
b := Person{
Age: 24,
Name: "widuu",
}
fmt.Println(b)
}
go指針操作
如下我們要對數值進行改變,先要取內存地址,然后再內存地址上改變他的引用
復制代碼 代碼如下:
package main
import "fmt"
type Person struct {
Age int
Name string
}
func main() {
b := &Person{
Age: 24,
Name: "widuu",
}
fmt.Println(b)
G(b)
fmt.Println(b)
}
func G(per *Person) {
per.Age = 15
fmt.Println(per)
}
匿名結構
(1)匿名內部結構的使用
復制代碼 代碼如下:
func main() {
a := struct {
name string
Age int
}{
name: "widuu",
Age: 19,
}
fmt.Println(a)
}
復制代碼 代碼如下:
package main
import "fmt"
type Person struct {
Age int
Name string
Member struct {
phone, City string
}
}
func main() {
a := Person{Age: 16, Name: "widuu"}
a.Member.phone = "13800000"
a.Member.City = "widuuweb"
fmt.Println(a)
}
(2)匿名類值不需要數據名稱、在賦值的時候兩個結構必須是一樣的
復制代碼 代碼如下:
package main
import "fmt"
type Person struct {
string
int
}
func main() {
a := Person{"joe", 19}
var b Person
b = a
fmt.Println(b)
}
嵌入結構
(1).嵌入式結構模擬其他程序有個繼承的概念,只是概念哦
復制代碼 代碼如下:
package main
import "fmt"
type Person struct {
Name string
Age int
}
type student struct {
Person
work string
}
func main() {
//實例化時 如果嵌入式的結構沒有數據結構的名字 就默認是類型名字Person:Person
a := student{Person: Person{Name: "widuu", Age: 19}, work: "IT"}
fmt.Println(a)
}
(2).結構方法
復制代碼 代碼如下:
package main
import "fmt"
type A struct {
Name string //這個是共有的大寫 如果是小寫的name就包內可以用私有的
}
type B struct {
Name string
}
func main() {
a := A{}
b := B{}
a.print()
b.print()
}
//通過type不同,來取相同的方法的名稱
func (a *A) print() {
fmt.Println("A")
}
func (b *B) print() {
fmt.Println("B")
}
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。