• 速战速决 go go 面向对象: 结构体(内嵌结构体,内嵌结构体实现类似继承的效果,内嵌匿名结构体,内嵌类型)


    速战速决 go https://github.com/webabcd/GoSample
    作者 webabcd

    速战速决 go - go 面向对象: 结构体(内嵌结构体,内嵌结构体实现类似继承的效果,内嵌匿名结构体,内嵌类型)

    示例如下:

    oop/struct2.go

    // go 面向对象 - 结构体(内嵌结构体,内嵌结构体实现类似继承的效果,内嵌匿名结构体,内嵌类型)
    
    package oop
    
    import "fmt"
    
    func Struct2Sample() {
    	struct2_sample1()
    }
    
    func struct2_sample1() {
    	a := &struct22{}
    	a.c = true
    	a.a = 0     // 可以直接使用内嵌结构体的成员,当然也可以像这样写全了 a.struct21.a(如果成员名字有冲突,则必须按照这种方式使用)
    	a.b = "abc" // 可以直接使用内嵌结构体的成员,当然也可以像这样写全了 a.struct21.b(如果成员名字有冲突,则必须按照这种方式使用)
    	a.d.x = 123
    	a.d.y = "xyz"
    	a.float32 = 3.14 // 使用内嵌类型
    	fmt.Println(a)   // &{true {0 abc} {123 xyz} 3.14}
    
    	// 顺序初始化(所有成员都要初始化)
    	b := &struct22{
    		true,
    		struct21{
    			0,
    			"abc",
    		},
    		// 内嵌匿名结构体的初始化
    		struct {
    			x int
    			y string
    		}{
    			123,
    			"xyz",
    		},
    		3.14,
    	}
    	fmt.Println(b) // &{true {0 abc} {123 xyz} 3.14}
    
    	// 按 key/value 初始化(不要求所有成员都初始化)
    	c := &struct22{
    		c: true,
    		struct21: struct21{
    			0,
    			"abc",
    		},
    		// 内嵌匿名结构体的初始化
    		d: struct {
    			x int
    			y string
    		}{
    			123,
    			"xyz",
    		},
    		float32: 3.14,
    	}
    	fmt.Println(c) // &{true {0 abc} {123 xyz} 3.14}
    
    }
    
    type struct21 struct {
    	a int
    	b string
    }
    
    type struct22 struct {
    	c bool
    
    	// 内嵌结构体(同类型的只能有一个)
    	// 内嵌结构体可以实现类似继承的效果,这里相当于 Struct21 是基类,Struct22 是子类
    	struct21
    
    	// 内嵌匿名结构体
    	d struct {
    		x int
    		y string
    	}
    
    	// 内嵌类型(同类型的只能有一个)
    	float32
    }
    
    

    速战速决 go https://github.com/webabcd/GoSample
    作者 webabcd

  • 相关阅读:
    C#大小写字母转换函数
    vss安装及服务器端、客户端配置图文教程
    JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
    LoadRunner 录制IE 8卡死
    LoadRunner 11 安装及破解
    C#开发中常用加密解密方法解析
    Oracle 11g安装图文攻略
    IIS添加域名
    SQL2008中Merge的用法
    在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
  • 原文地址:https://www.cnblogs.com/webabcd/p/go_oop_struct2.html
Copyright © 2020-2023  润新知