Golang type的两种用法

简介: Golang type的两种用法

自定义类型

在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型。

自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct或者函数类型来定义。

//将MyInt定义为int类型
    type MyInt int

通过Type关键字的定义,MyInt就是一种新的类型,它具有int的特性,但是他们不是同一种类型。

package main
import "fmt"
type Myint int
func main() {
  var myint Myint = 5
  var orint int = 6
  fmt.Printf("%T,%d\n", myint, myint)
  fmt.Printf("%T,%d", orint, orint)
}
$ go run main.go
main.Myint,5
int,6

类型别名

类型别名是Go1.9版本添加的新功能。


类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。

//将TypeAlias 定义为Type类型的别名
 type TypeAlias = Type

类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别。

package main
import "fmt"
type Myint = int
func main() {
  var myint Myint = 5
  var orint int = 6
  fmt.Printf("%T,%d\n", myint, myint)
  fmt.Printf("%T,%d", orint, orint)
}
$ go run main.go
int,5
int,6

Myint类型只会在代码中存在,编译完成时并不会有Myint类型。

目录
相关文章
|
2月前
|
Go 调度 Python
Golang协程和Python协程用法上的那些“不一样”
本文对比了 Python 和 Go 语言中协程的区别,重点分析了调度机制和执行方式的不同。Go 的协程(goroutine)由运行时自动调度,启动后立即执行;而 Python 协程需通过 await 显式调度,依赖事件循环。文中通过代码示例展示了两种协程的实际运行效果。
143 7
|
存储 人工智能 Go
golang 反射基本原理及用法
golang 反射基本原理及用法
100 0
|
缓存 Go C++
Golang中select的四大用法
Golang中select的四大用法
231 0
|
JSON 小程序 前端开发
Golang slice的几种用法
最近生活风平浪静。工作时间还是比较忙,业余时间写文章的频率不高,本来想把关于slice的都写完,但后来发现太多了,于是打算拆成三篇来写。 前段时间花了大量的时间在弄小程序,本来都发布成功了,但后来某一次小程序升级说涉及交友服务,需要改类目,而交友类目需要电信增值服务的证,这个证比较难搞,所以可能后面打算终止这个小程序了,过段时间可能会把代码开源吧。
933 0
|
Cloud Native 前端开发 Go
探索 Golang 云原生游戏服务器开发,根据官方示例实战 Gorilla WebSocket 的用法
探索 Golang 云原生游戏服务器开发,根据官方示例实战 Gorilla WebSocket 的用法
790 0
|
Go
golang flag简单用法
版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.
1192 0
|
Go
golang channel 用法转的
一、Golang并发基础理论 Golang在并发设计方面参考了C.A.R Hoare的CSP,即Communicating Sequential Processes并发模型理论。但就像John Graham-Cumming所说的那样,多数Golang程序员或爱好者仅仅停留在“知道”这一层次,理解CSP理论的并不多,毕竟多数程序员是搞工程 的。
1233 0
|
16天前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
68 1
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
522 4
Golang语言之管道channel快速入门篇

热门文章

最新文章

推荐镜像

更多