golang 自定義結構體(與其他語言對象類似)


 1 /*
 2 
 3     結構體變量:
 4         結構體的定義只是一種內存布局的描述,只有當結構體實例化時,才會真正地分配內存,
 5         因此必須在定義結構體並實例化后才能使用結構體的字段。
 6         type 類型名 struct {
 7             字段1 字段1類型
 8             字段2 字段2類型
 9 10         }
11     指針類型的結構體 :new 關鍵字對類型(包括結構體、整型、浮點數、字符串等)進行實例化,結構體在實例化后會形成指針類型的結構體
12         1 var o *類型名 = new(類型名)
13         2 o := &類型名{}
14         賦值 :
15         1 var o *類型名 = new(類型名){字段1:值}
16         2 o.字段1 = xxx
17         3 p := &struct {// 定義
18             name string
19         }{// 初始化
20             name:"lizi",
21         }
22     結構體方法:
23         1 每個方法只能有一個接收器(分: 非指針類型 和 指針類型 接收器)
24         2 非指針類型接收器: 當方法作用於非指針接收器時,Go語言會在代碼運行時將接收器的值復制一份,在非指針接收器的方法中可以獲取接收器的成員值,但修改后無效
25         3 指針類型接收器: 指針類型的接收器由一個結構體的指針組成,更接近於面向對象中的 this 或者 self
26         func (接收器變量 接收器類型) 方法名(參數列表) (返回參數) {
27             函數體
28         }
29         例:
30         type ObjectType struct{id int}
31         func (o *ObjectType) SetId(id) int{
32             o.id = id
33             return id
34         }
35         o := new(ObjectType)
36         o.SetId(0)
37         結構內嵌特性:
38         1 內嵌的結構體可以直接訪問其成員變量
39         2 內嵌結構體的字段名是它的類型名
40         類型內嵌
41 */
42 package info_struct

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM