go11 方法

简介: go11 方法

go11 方法

声明新类型


关键字 type 可以用来声明新类型:


type celsius float64


var temperature celsius = 20


虽然 Celsius 是一种全新的类型,但是由于它和 float64 具有相同的行为和表示,所以赋值操作能顺利执行。


例如加法等运算,也可以像 float64 那样使用。


70fe09d3163f49529d0a8da120082421.png


为什么要声明新类型:极大的提高代码可读性和可靠性。

不同的类型是无法混用的。

通过方法添加行为


在 C#、Java 里,方法属于类。

在 Go 里,它提供了方法,但是没提供类和对象。

Go 比其他语言的方法要灵活。

可以将方法与同包中声明的任何类型相关联,但不可以是 int、float64 等预声明的类型进行关联。



231e6da460a242578d932ac5bf8162a0.png


上例中,celsius 方法虽然没有参数。但它前面却又一个类型参数的接收者。

每个方法可以有多个参数,但只能有一个接收者。

在方法体中,接收者的行为和其它参数一样。

方法声明图解:

方法调用

变量 . 方法()



2c185ef1aa61459cb5510bfa9c6e5265.png


目录
相关文章
|
4月前
|
存储 设计模式 Cloud Native
云原生系列Go语言篇-类型、方法和接口 Part 1
通过前面章节的学习,我们知道Go是一种静态类型语言,包含有内置类型和用户定义类型。和大部分现代编程语言一样,Go允许我们对类型关联方法。它也具备类型抽象,可以编写没有显式实现的方法。
75 0
|
4月前
|
Go
Go string bytes、strings、strconv和unicode包相关方法
Go string bytes、strings、strconv和unicode包相关方法
43 0
|
27天前
|
存储 Ubuntu Go
在Ubuntu 16.04上安装Go 1.6的方法
在Ubuntu 16.04上安装Go 1.6的方法
30 1
|
27天前
|
存储 Ubuntu Go
在Ubuntu 18.04上安装Go的方法
在Ubuntu 18.04上安装Go的方法
18 1
|
27天前
|
存储 Ubuntu Linux
在Ubuntu 14.04上安装Go 1.6的方法
在Ubuntu 14.04上安装Go 1.6的方法
36 1
|
1月前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧
|
1月前
|
运维 监控 算法
[go 面试] 优化线上故障排查与性能问题的方法
[go 面试] 优化线上故障排查与性能问题的方法
|
1月前
|
JSON 测试技术 Go
Go Kit中读取原始HTTP请求体的方法
Go Kit中读取原始HTTP请求体的方法
|
1月前
|
缓存 算法 Go
|
1月前
|
存储 Go 开发者
在Go中对切片/数组求和的多种方法
在Go中对切片/数组求和的多种方法