常量和变量

和所有编程语言一样,Go语言中可以定义常量和变量,这篇笔记我们简单介绍一下相关用法。

变量声明

变量使用var关键字定义,和其它语言语法不同的是,Go语言的数据类型总是写在后面。

var i int = 1

Go语言编译器支持自动类型推导,如果声明时直接赋值,是可以省略数据类型的;更进一步,使用:=操作符也可以实现变量的声明和定义,此时连var也可以省略了。

// 声明变量并自动类型推导
var i = 1
// 更简短的写法
i := 1

Go语言也支持多个变量同时声明,写法例子如下。

// 声明3个int型变量
var i, j, k int = 1, 2, 3
// 声明3个变量,自动推导其类型
var i, j, k = 1, true, "hello"
// var()多个变量组合声明
var (
  i int
  j bool
  k string = "hello"
)

对于一组相关的变量,我们推荐使用组合声明,提高代码的可读性。

此外我们还需要知道的一点是,变量声明后没有赋值,默认数值类型会初始化为0,布尔类型初始化为false,字符串类型初始化为空字符串""。尽管Go有着这些默认行为,但我们还是不建议依赖这些默认行为编写代码,否则一些代码逻辑可能让对Go不是那么熟悉的C、Java程序员感到迷惑。

常量声明

常量使用const关键字声明,常量声明时必须赋值,其它和变量相同。

const i int = 1

当然,常量也同样支持组合声明。

const (
  i int    = 1
  j bool   = false
  k string = "hello"
)

类型转换

Go中类型转换和C差不多,使用类似T()的函数,T为类型名,例子代码如下:

var i = 1
var f float32
f = float32(i)

C语言的隐式类型转换给许多人都造成了困惑和麻烦,Go中没有隐式类型转换这一恼人的特性,所有类型转换都必须指明,上面例子中如果去掉float32()就会报错。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap