golang不能隐式转换吗


本文摘自php中文网,作者(*-*)浩,侵删。

不能,作者认为这种功能带来的隐患比便利要多,Golang中Int和int64都不是一个类型,不能隐式转换。

Go 编程语言是一个开源项目,它使程序员更具生产力。 (推荐学习:go)

Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制,用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。

Go代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。

Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。在数学概念中,变量表示没有固定值且可改变的数。但从计算机系统实现角度来看,变量是一段或多段用来存储数据的内存。

声明变量的一般形式是使用 var 关键字:

1

var name type

其中,var 是声明变量的关键字,name 是变量名,type 是变量的类型。

需要注意的是,Go语言和许多编程语言不同,它在声明变量时将变量的类型放在变量的名称之后。

这样做的好处就是可以避免像C语言中那样含糊不清的声明形式,例如:int* a, b; 。其中只有 a 是指针而 b 不是。如果你想要这两个变量都是指针,则需要将它们分开书写。

而在 Go 中,则可以和轻松地将它们都声明为指针类型:

1

var a, b *int

Go语言的基本类型有:

1

2

3

4

5

6

7

8

bool

string

int、int8、int16、int32、int64

uint、uint8、uint16、uint32、uint64、uintptr

byte // uint8 的别名

rune // int32 的别名 代表一个 Unicode 码

float32、float64

complex64、complex128

当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等。所有的内存在 Go 中都是经过初始化的。

变量的命名规则遵循骆驼命名法,即首个单词小写,每个新单词的首字母大写,例如:numShips 和 startDate 。

变量的声明有几种形式,通过下面几节进行整理归纳。

标准格式

Go语言的变量声明的标准格式为:

1

var 变量名 变量类型

变量声明以关键字 var 开头,后置变量类型,行尾无须分号。

以上就是golang不能隐式转换吗的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

golang 的内存管理(上篇)

golang 1.11 module 做项目版本管理

golang封装解析请求参数(使用不同的请求头)

go modules构建项目

go dumpling! 让导出数据更稳定

nginx 服务搭建

手撸golang 基本数据结构与算法 图的搜索 深度优先/广度优先

go-carbon 1.3.2 版本发布,新增自定义 i18n 系列方法和日文翻译文件

手撸golang 架构设计原则 里氏替换原则

golang网络数据传输过程中的binary.read与unsafe.pointer指针强转分析

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...