14. 面向对象
来源:互联网 发布:pscc2017 mac版本下载 编辑:程序博客网 时间:2024/06/05 08:02
1.面向对象
- 值语义和引用语义
值语义:
引用语义:
结构初始化:type Rect struct { x,y float64 width,height float64}func (r *Rect) Area() float64 { return r.height * r.width}rect1 := new(Rect) rect2 := &Rect{} rect3 := &Rect{0,0,100,200} rect4 := &Rect{width:111,height:222} fmt.Println(*rect1) fmt.Println(rect2) fmt.Println(rect3) fmt.Println(rect4)
匿名组合(继承):package mainimport ( "fmt")type Base struct { Name string}func (base *Base) Foo() { fmt.Println("Foo")}func (base *Base) Bar(){ fmt.Println("bar.Bar")}type Foo struct { Base}func (foo *Foo) Bar() { fmt.Println("foo.bar") //foo.Base.Bar()}func main() { //var base = new(Base) //base.Name = "base_name" //fmt.Println(base.Name) var foo = new(Foo) foo.Base.Bar() foo.Bar()}
package mainimport ( "fmt")type Base struct { Name string}func (base *Base) Foo() { fmt.Println("base.Foo()")}func (base Base) Bar() { fmt.Println("base.Bar()")}type AA struct { Base}func main() { var a = AA{} // 值 a.Foo() a.Bar() var b = new(AA) //指针 b.Foo() b.Bar()}____________________________________type AA struct { Base}与的区别 :type AA struct { *Base}1.如果为嵌入类型为 Base ,a 和 b 的方法集都包含接受者为 Base 的方法提升a = new(AA) // 指针b = AA() // 值类型2.如果为嵌入类型为 *Base //var a = AA{} // 值 //a.Foo() // true //a.Bar() // false var b = new(AA) //指针 //b.Foo() // true b.Bar() // false
https://segmentfault.com/q/1010000002687684/a-1020000002688273
2.接口
接口赋值:
阅读全文
0 0
- 14. 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 唯快不破:linux网络编程--深入浅出send和recv
- 5个技巧打造令人印象深刻的LOGO
- centos7 虚拟机联网
- js回调方法 js递归时使用方法
- 01-常用对象API(集合框架-泛型-概述) 1 2 02-常用对象API(集合框架-泛型-擦除&补偿) 03-常用对象API(集合框架-泛型-在集合中的应用)
- 14. 面向对象
- POJ 1328 安装雷达
- 基于vs2015+opencv3.3的简易的车牌定位
- 进程间通信方式(二)
- iOS shouldRasterize 详解 是否光栅化
- Maven手记
- 复杂链表的复制
- 20171130 自省
- iOS"离屏渲染"整理总结