Go+变量和常量

简介: 常量是一个简单值的标识符,在程序运行时,不会被修改也不可以被修改的量。常量的定义格式:const 常量名 [类型] = 常量值

常量


概述


常量是一个简单值的标识符,在程序运行时,不会被修改也不可以被修改的量。常量的定义格式:


const 常量名 [类型] = 常量值
复制代码


你可以省略类型说明符 [类型],因为Go+可以根据变量的值来推断其类型。比如:


  • 显式常量定义: const a string = "HelloWorld"
  • 隐式常量定义: const a = "HelloWorld"


多个相同类型的变量可以简写:


const name1, name2 = value1, value2
复制代码


实例代码:


const WIDTH int = 5
const name1, name2 = "Hello", "World"
println(WIDTH)
println(name1)
println(name2)
复制代码

1.JPG


注意


常量是不可以修改和二次赋值的,不然会报错。


2.JPG


变量


变量声明


Go+语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的语法:


var 变量名 类型
复制代码
var a string
a = "hello"
println(a)
复制代码


同时可以一次声明多个变量。


var 变量名1, 变量名2... type
复制代码
var name,name2 string
复制代码


如果不对变量进行初始化的话就必须定义类型。如果对变量进行了初始化,那么GO+会根据值的类型自动判断变量类型。


变量初始化


一般写法

对单个变量进行初始化。


var name = "admin"
println(name)
复制代码


如果变量没有初始化的话就必须指定类型,这个时候变量的值是默认值。


var num int
println(num) // 0
复制代码


布尔类型的默认值为false。


var flag bool
println(flag) // false
复制代码


string默认为空串。


var name string
println(name)
复制代码


总结来说:


  • 数值类型(包括complex64/128)为 0
  • 布尔类型为 false
  • 字符串为 ""(空字符串)


简易写法


我们知道可以在变量的初始化时省略变量的类型而由系统自动推断,声明语句写上 var 关键字其实是显得有些多余了,而且很容易和js的变量声明产生混淆,也是GO+有简单的写法::= 赋值操作符,例如:


name := "admin"
println(name) //admin
复制代码


但是如果变量已经使用var声明过了,再使用:= 声明变量,就会报编译错误。


var num int
num := 1 // # command-line-arguments Variables\Variables.gop:3: num declared but not used**intVal := 1** 
复制代码


num := 1等价于两步:


  1. var num int
  2. num = 1



相关文章
初识go变量,使用var和:=来声明变量,声明变量的三种方式
这篇文章介绍了Go语言中使用`var`和`:=`声明变量的三种不同方式,包括声明单个或多个变量、通过值确定数据类型以及在函数体内使用`:=`声明局部变量。
初识go变量,使用var和:=来声明变量,声明变量的三种方式
|
1月前
|
存储 编译器 Go
go语言中的变量、常量、数据类型
【11月更文挑战第3天】
36 9
|
1月前
|
Go
go语言的复数常量
【10月更文挑战第21天】
46 6
|
1月前
|
Go
go语言的浮点型常量
【10月更文挑战第21天】
28 4
|
1月前
|
编译器 Go
go语言的整型常量
【10月更文挑战第21天】
34 3
|
1月前
|
Go
go语言常量的类型
【10月更文挑战第20天】
29 2
|
1月前
|
Go
go语言定义常量
【10月更文挑战第20天】
28 2
|
1月前
|
Go
go语言使用常量和编译时常量表达式
【10月更文挑战第19天】
36 2
|
3月前
|
安全 Go C语言
Go常量的定义和使用const,const特性“隐式重复前一个表达式”,以及iota枚举常量的使用
这篇文章介绍了Go语言中使用`const`定义常量的方法,包括常量的特性“隐式重复前一个表达式”,以及如何使用`iota`实现枚举常量的功能。
|
4月前
|
Go
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围