内容简介:类型系统&取址可以让p1与p2共享同一块数据内存,从而在修改的时候p1与p2的结果相同。Go 语言的基本类型在赋值的时候,实际上是值传递,包括复合类型,这点与其他的面向对象语言方式不同,需要在开发的时候额外注意。
类型系统
继承
package main import ( "fmt" ) type Integer int func (a Integer) Less(b Integer) bool { return a > b } func main() { var integer Integer = 1 fmt.Println(integer.Less(0)) } // print -> true
指针运算符 *
package main import ( "fmt" ) type Person struct { Id string Name string } func main() { p1 := Person{"1", "张三"} p2 := &p1 p1.Id = "2" fmt.Println(p1, *p2) } // print -> {2 张三} {2 张三}
取址符 &
package main import ( "fmt" ) type Person struct { Id string Name string } func main() { p1 := Person{"1", "张三"} p2 := &p1 p1.Id = "2" fmt.Println(p1, p2) } // print -> {2 张三} &{2 张三}
&取址可以让p1与p2共享同一块数据内存,从而在修改的时候p1与p2的结果相同。
非取址
package main import ( "fmt" ) type Person struct { Id string Name string } func main() { p1 := Person{"1", "张三"} p2 := p1 p1.Id = "2" fmt.Println(p1, p2) } // print -> {2 张三} {1 张三}
Go 语言的基本类型在赋值的时候,实际上是值传递,包括复合类型,这点与其他的面向对象语言方式不同,需要在开发的时候额外注意。
数组切片、map、channel、interface
数组切片
package main import ( "fmt" ) func main() { a1 := []int{1, 2, 3} a2 := a1 a1[0] = 10 fmt.Println(a1, a2) } // print -> [10 2 3] [10 2 3]
map
package main import ( "fmt" ) func main() { m1 := map[string]string{"1": "hi"} m2 := m1 m1["1"] = "ok" fmt.Println(m1, m2) } // print -> map[1:ok] map[1:ok]
channel
inteface
interface 接口
package main import ( "fmt" ) type Person struct { Name string } func (p *Person) Find() { fmt.Println("find person") } type IFind interface { Find() } type IString interface { String() } func main() { var f IFind = new(Person) f.Find() } // print -> find person
interface
package main import ( "fmt" ) type Integer int func (a Integer) Less(b Integer) bool { return a < b } func (a Integer) Add(b Integer) { a += b } type LessAdder interface { Less(b Integer) bool Add(b Integer) } func main() { var a Integer = 1 var b LessAdder = a fmt.Println(a, b) } // print -> 1 1
以上所述就是小编给大家介绍的《go语言学习初探(三)面向对象编程》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web协议与实践
克里希纳穆尔蒂 (KrishnamurthyBalachander) / 范群波 / 科学出版社 / 2003-7 / 46.0
本书全面论述了传输Web内容的系统和协议,重点讲述了Web中业已成熟和稳定的技术,如TCP/IP协议及DNS技术、HITP/1.0的设计及其与TCP之间的交互;深入阐述了Web高速缓存技术和多媒体流播技术的最新技术动态;分析了Apache Web服务器和Squid代理;还探讨了通信量的分析和测量技术。书中使用了大量示例、技术发展水平报告以及案例分析来阐述Web的工作原理和各个组件之间的交互。本书是......一起来看看 《Web协议与实践》 这本书的介绍吧!