标签:getname 一个 inf 图片 初始 访问 结构体 style 结构
Golang中的方法是作用在特定类型的变量上,因此自定义类型,都可以有方法,而不仅仅是struct。
func (var *Struct_Name) FuncName( var0, var1... ) return type {}
package main import ( "fmt" ) type test struct { name string age int } func (v *test) getList() { fmt.Println("getList") } func main() { var s = new(test) s.getList() }
package main import ( "fmt" ) type test struct { name string age int } func (this *test) init(name string, age int) { this.name = name this.age = age } func (this *test) getName() string { return this.name } func (this *test) getAge() int { return this.age } func main() { var s = new(test) s.init("zhangsan", 20) fmt.Println(s.getName()) fmt.Println(s.getAge()) }
自行调用初始化方法来实现构造函数的作用
package main import "fmt" type integer int func (this integer) test() { fmt.Println("print integer") } type test struct { name string age int } func main() { var i = new(integer) i.test() }
package main type integer int func main() { var i integer i = 100 var n = 10 n = i }
package main import ( "fmt" ) type integer int func (this integer) get() { fmt.Println(this) } func (this integer) set(num integer) { this = num } func main() { var i integer i = 100 i.set(1999) fmt.Print(i) }
package main import ( "fmt" ) type integer int func (this integer) get() { fmt.Println(this) } func (this *integer) set(num integer) { *this = num } func main() { var i integer i = 100 (&i).set(1999) //= i.set(1999) fmt.Print(i) }
方法的访问控制也是通过控制的
如果一个struct嵌套了另一个匿名结构体,那么这个结构可以直接访问 匿名结构体的方法,从而实现了继承。
结构体方法的继承
package main import ( "fmt" ) type test struct { Name int Age int } func (this test) getName() int { return this.Name } type test1 struct { test } func main() { var t test1 t.Name = 123 var name = t.getName() fmt.Println(name) }
如果一个struct嵌套了另一个匿名结构体,那么这个结构可以直接访问 匿名结构体的方法,从而实现了继承。
如果一个struct嵌套了另一个有名结构体,那么这个模式就叫组合。
package main import ( "fmt" ) type test struct { Name int Age int } func (this test) getName() int { return this.Name } type test1 struct { t test } func main() { var t test1 t.t.Name = 123 var name = t.t.getName() fmt.Println(name) }
标签:getname 一个 inf 图片 初始 访问 结构体 style 结构
原文地址:https://www.cnblogs.com/LC161616/p/9904730.html