其他分享
首页 > 其他分享> > 9.10Go之结构体之实例化

9.10Go之结构体之实例化

作者:互联网

9.10Go之结构体之实例化

什么是结构体

概念:

使用结构体的特点

什么是结构体实例化

概念:

特点:

Go语言中几种实例化结构体的方法

  • 基本的实例化形式

  • 创建指针类型的结构体

  • 取结构体的地址实例化


基本的实例化形式

概念:

实例化格式:

var ins T
/*
T 为结构体类型,ins 为结构体的实例
*/

示例代码:

需求:

package main

/*
定义一个point结构体
*/
type point struct {
X float64
Y float64
Z float64
}

func main() {
//利用变量的形式把point结构体实例化出来
var p point
p.X = 3.14
p.Y = 6.28
p.Z = 9.72
}
/*
使用.来访问结构体的成员变量
*/

创建指针类型的结构体

概念:

实例化格式:

ins := new(T)
/*
ins的类型是指针类型
*/

示例代码:

需求:

package main

/*
创建一个player结构体
*/
type player struct {
Name string
HP float64
MP float64
}

func main() {
//使用new关键字对结构体进行实例化
playerNo1 := new(player)
playerNo1.Name = "JunkingBoy"
playerNo1.HP = 100000000
playerNo1.MP = 100000000
}

在 C/C++ 语言中,使用 new 实例化类型后,访问其成员变量时必须使用->操作符

取结构体的地址实例化

概念:

实例化格式:

ins := &T{}
/*
ins是一个变量
*/

代码示例:

需求:

package main

/*
创建一个命令行结构体
*/
type Command struct {
Name string //指令名称
Var *int //指令绑定的变量
   /*
   命令绑定的变量,使用整型指针绑定一个指针,指令的值可以与绑定的值随时保持同步
   */
Comment string //注释
}

//定义指令绑定的变量
var version int = 1
/*
命令绑定的目标整型变量:版本号
*/

func main() {
//使用取地址对结构体进行实例化
cmd := &Command{}
cmd.Name = "version"
cmd.Var = &version
cmd.Comment = "show version"
}

使用函数封装上诉过程:

/*
使用函数封装实例化结构体、对成员进行赋值、绑定等操作
调用这个函数自动的对结构体进行赋值操作并且返回传入的参数
*/
func newCommand(name string, varref *int, comment string) *Command {
return &Command{
Name: name,
Var: varref,
Comment: comment,
}
}

取地址实例化是最广泛的一种结构体实例化方式

标签:变量,绑定,9.10,ins,体之,类型,实例,Go,结构
来源: https://www.cnblogs.com/JunkingBoy/p/15252881.html