首页 文章 Go语言基础 常量与运算符 golang
0
0
0
3

常量与运算符 golang

基础语法 运算符 常量 golang

在上一篇博文当中最后一句有讲到,当你需要强制转换一个 int 值为一个字符串类型,得到的值会和想象中有些出入。

func main() {
    a := 65
    var b = string(a)
    fmt.Println(b)
}

这里打印出来的是大写字母 A,这是为什么?为什么不是一个值为 65 的字符串?

当你强制转换时,系统会认为你想要得到是 ASCII 表对应的字符串,刚好 65 对应的是大写 A。

如何能够得到一个字符串的65,这就需要再引入一个包了,strconv 包, strconv.Itoa 能够将一个 int 转换为字符串,Atoi则相反。在这里我有些想不明白,Ito 我能想明白,可以理解为 int 转换为某某, a 是字符串的意思?

如何证明 Itoa 真的就将 65 转换成了字符串呢,这里又得引入一个包(php 简直太方便了)。

这个包叫 reflect ,有个方法为 TypeOf ,使用这个方法能检测值类型。

常量,和变量组一样,也可以有常量组,常量的定义在需要在编译的时候就已经可以确定。下面举个例子:

const (
    a = "world"
    b = len(a)
    c = iota
)
const (
    d = iota
)
func main() {
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
    fmt.Println(d)
}

在第一个常量组中,如果你将 a 移除,在全局变量中声明一个 a='world' ,那么你将会得到一个错误,因为他不是一个能够确定的,他是一个变量。

len 函数是字符长度测量,所以b将会是一个 int 值为 5 。

c 是个计数器,在当前常量组中你声明了多少个常量,这个 iota 就是几,所以 iota 应该为 2 ,如果在第一个常量组中在 c 下面再声明一个 e 常量,而不声明值,那么 e 就会等于上一个已声明的常量,就是 c 。

c 的值是个计数器,所以 e 也等于 iota ,所以 e 就等于 3 。

来到第二常量组,里面只有一个 d 常量,在一个新的常量组里 iota 是从零开始计数的,所以 d 就等于 0 ,最终打印出来的结果为 world , 5 , 2 , 0 。

当然常量应该写为大写,如果不想为外部调用的话,可以在常量命名前加个下划线。

运算符,前几篇博文有写到过运算符的概念,所以这里不再重复,我再看一遍就好了。

原文链接:常量与运算符 golang


到此这篇关于“常量与运算符 golang”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持Go语言编程网!

相关文章

创建博客

开始创作
写作能提升自己能力,也能为他人分享知识。

在线教程

查看更多
  • Go入门指南

    Go入门指南

  • Go语言高级编程

    Go语言高级编程

  • Go Web 编程

    Go Web 编程

  • GO专家编程

    GO专家编程

  • Go语言四十二章经

    Go语言四十二章经

  • 数据结构和算法(Golang实现)

    数据结构和算法(Golang实现)

Go语言编程网

微信扫码关注订阅号


博客 资讯 教程 我的