自定义类型和类型别名以及实例化结构体的5种方式
自定义类型
package main
import ("fmt")
// 自定义类型
type MyInt int
func main() {
var a MyInt = 10
// 输出的是:类型是main.MyInt,值是10
fmt.Printf("类型是%T,值是%d\n",a,a)
}
类型别名
package main
import ("fmt")
// 类型别名
type MyInt = int
func main() {
var a MyInt = 10
// 输出的是:类型是int,值是10
fmt.Printf("类型是%T,值是%d\n",a,a)
}
注意类型别名和自定义类型的区别
结构体的命名
注意:结构体首字母可以大写也可以小写,
大写表示这个结构体是公有的,在其他的包里面可以使用。
小写表示这个结构体是私有的,只有这个包里面才能使用。
定义一个结构体,并且实例化它的一种方式(一)
package main
import ("fmt")
// 这个结构体是私有的哈
type Person struct {
name string
age int
}
func main() {
// 实例化Person结构
var p Person
// 给结构体附上值
p.name = "Tom"
p.age = 18
fmt.Println(p)
// 打印结构体使用 %#v
fmt.Printf("值:%#v",p)
}
输出:{Tom 18}
输出:值:main.Person{name:"Tom", age:18}
定义一个结构体,并且实例化它的一种方式(二)
package main
import ("fmt")
type Person struct {
name string
age int
}
func main() {
// 实例化Person结构的另外一种方式
var p = new(Person)
// 给结构体附上值
p.name = "Tom"
p.age = 18
fmt.Println(p)
fmt.Printf("值:%#v",p)
}
new 方法实例化结构体(二)
注意:在 Golang中支持对结构体指针直接使用,来访问结构体的成员。
p2.name="张三" 其实在底层是 (*p2).name="张三"
package main
import ("fmt")
type Person struct {
name string
age int
}
func main() {
// 实例化Person结构的另外一种方式
var p = new(Person)
p.age = 18
// 设置结构体属性的另外一种方式,通过指针的方式来设置
(*p).name = "Tom"
}
实例化结构体(三)
&变量名: 表示变量的内存地址,也叫做指针
package main
import ("fmt")
type Person struct {
name string
age int
}
func main() {
// 实例化Person结构的另外一种方式
var p = &Person{}
p.age = 18
// 设置结构体属性的另外一种方式
(*p).name = "Tom"
fmt.Printf("值:%#v",p)
}
实例化结构体(四)
package main
import ("fmt")
type Person struct {
name string
age int
}
func main() {
// 实例化Person结构的另外一种方式(第4种)
var p = Person{
name: "张三",
// 最后一个需要添加逗号的哈
age: 18,
}
}
实例化结构体(五)
package main
import ("fmt")
type Person struct {
name string
age int
}
func main() {
// 实例化Person结构的另外一种方式(第5种)
var p = &Person{
name: "张三",
// 最后一个需要添加逗号的哈
age: 18,
}
// 值:&main.Person{name:"张三", age:18}, 类型:*main.Person
fmt.Printf("值:%#v, 类型:%T",p,p) // 这个p是指针类型
}
作者:流年少年
出处:https://www.cnblogs.com/ishoulgodo/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/ishoulgodo/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
支付宝
微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。

浙公网安备 33010602011771号