小工具知识网

当前位置: 首页 > 行业知识 > Go语言实战五-go语言的类型与iton

行业知识

Go语言实战五-go语言的类型与iton

2026-10-22 00:54:43 来源:互联网转载

前言

go��言是静态类型语言,也就是在编译时编译器需要知道程序中值的类型,这样有利于减少bug和提高性能,具体就是内存的分配量和其中的内容

()
用户定义类型

1.用户定义新的类型,需要使用type 和struct关键字

type user struct {name stringemail stringphone int}

这个类型就类似于面向对象时抽象出来的一个对象

()

可以用来创建值

var jack user

这样jack就是一个user类型的变量,不初始化时数值类型默认为0,字符串为空字符串,布尔为false

可以利用短变量声明操作符(: =)对变量初始化

lisa := user{name:"lisa",email:"aaa@bb.com",phone:"134343434"}

如下,也可以不用字段名直接按顺序赋值

lisa := user{"Lisa", "lisa@email.com", 123, true}

同时,结构体也可以嵌套,如下,person是一个user结构体类型的变量

type admin struct {person userlevel string }

如此初始化时也要对person按照结构体的方式进行赋值

2. 声明新类型还可以用已有的基础类型延伸,例如

type Duration int64

Duration基于int64类型,它的单位是ns(纳秒)

虽然是基于int64声明的,但它不兼容int64类型的值,强行赋值的话,编译器无法进行转换,会报错

方法

func关键字可以声明方法,如下

// notify 使用值接收者实现了一个方法 func (u user) notify() { fmt.Printf("Sending User Email To %s\n", u.name, u.email) } // changeEmail 使用指针接收者实现了一个方法 func (u *user) changeEmail(email string) { u.email = email }

两种接收者就类似于其他语言中的函数形参,都可以用来调用方法自身,两者特点是,值接收者在调用时会生成一个副本,指针接收者则会影响到原值,在编码时对两者的抉择,会有一些基本的指导原则

1.如果要更改原值,就使用指针接收者,如果要创建一个新值,就使用值接收者

上一篇:重庆时时下载攻略,轻松掌握高效下载技巧!

下一篇:Win10快速启动设置详解,轻松关闭,系统启动更顺畅!