2 变量和常量
[TOC]
变量和常量
使用一个标识符绑定一个内存地址,该内存地址中存放的数据类型由定义变量时指定的类型决定,该内存地址里面存放的数据可以改变。
变量
基本数据类型 显式完整声明
// 只声明
var varName dataType
// 声明并赋值
var varName dataType = value
var 用于变量声明。
varName 变量名标识符。
dataType 数据类型。
value 变量的初始值,可以是字面量或其它变量或表达式,如只声明会赋予类型的默认零值。
基础类型变量声明后会立即分配对应的内存空间。
基本数据类型 短类型定义变量
短类型定义变量由于是Go编译器自动进行数据类型推断,所以只能用在方法或函数中。
变量的属性
变量名,要符合自定义标识符规则,并且尽可能使用驼峰原则。
变量值,指向地址里存放的值,它的解析方式由类型决定,初始化时可以使用字面量或其它变量。
变量存储和生存期,Go是自动内存管理,编译器使用栈逃逸技术能够自动为变量分配空间:栈或者堆上。
类型,值的解析和支持的操作、运算由类型决定,不同类型的变量支持的操作和运算是不同的。
作用域,全局作用域(全局变量)、包内作用域(包内变量)、局部作用域(局部变量)。
变量覆盖
编译器解析变量名采用从里到外的搜索模式,里层局部变量能够覆盖外层同名变量。
局部变量之间覆盖
包内变量和全局变量之间覆盖
常量
使用一个标识符绑定一个内存地址,该内存地址中存放的数据类型由定义常量时指定的类型决定,该内存地址里面存放的数据是只读、不可改变的。
iota
iota实现常量自增。
Last updated