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类型。

目录
相关文章
|
5月前
|
存储 人工智能 Go
golang 反射基本原理及用法
golang 反射基本原理及用法
36 0
|
缓存 Go C++
Golang中select的四大用法
Golang中select的四大用法
122 0
|
JSON 小程序 前端开发
Golang slice的几种用法
最近生活风平浪静。工作时间还是比较忙,业余时间写文章的频率不高,本来想把关于slice的都写完,但后来发现太多了,于是打算拆成三篇来写。 前段时间花了大量的时间在弄小程序,本来都发布成功了,但后来某一次小程序升级说涉及交友服务,需要改类目,而交友类目需要电信增值服务的证,这个证比较难搞,所以可能后面打算终止这个小程序了,过段时间可能会把代码开源吧。
792 0
|
Cloud Native 前端开发 Go
探索 Golang 云原生游戏服务器开发,根据官方示例实战 Gorilla WebSocket 的用法
探索 Golang 云原生游戏服务器开发,根据官方示例实战 Gorilla WebSocket 的用法
702 0
|
Go
golang flag简单用法
版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.
1134 0
|
Go
golang channel 用法转的
一、Golang并发基础理论 Golang在并发设计方面参考了C.A.R Hoare的CSP,即Communicating Sequential Processes并发模型理论。但就像John Graham-Cumming所说的那样,多数Golang程序员或爱好者仅仅停留在“知道”这一层次,理解CSP理论的并不多,毕竟多数程序员是搞工程 的。
1196 0
|
4月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
152 4
Golang语言之管道channel快速入门篇
|
4月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
75 4
Golang语言文件操作快速入门篇
|
4月前
|
Go
Golang语言之gRPC程序设计示例
这篇文章是关于Golang语言使用gRPC进行程序设计的详细教程,涵盖了RPC协议的介绍、gRPC环境的搭建、Protocol Buffers的使用、gRPC服务的编写和通信示例。
121 3
Golang语言之gRPC程序设计示例