Go变量与常量
2024-10-08 09:31:21
变量与常量
变量声明
定义变量时指定变量类型式
定义变量时依靠类型推断
go是静态,强类型语言(java,c++也是如此)。
静态语言: 在编译时就能确定变量类型的语言,类型推导在编译阶段可以不用指明类型
动态语言: 在运行阶段才能确定变量类型的语言
强类型语言: 一旦确定类型,运行时就不能改变,即使强制转换也不能改变原始变量类型
弱类型: 运行是能根据上下文隐式的转换数据类型简短声明 左边的变量名至少有一个是新的,不能定义全局变量
左边的变量名至少有一个是新的
不能定义全局变量
全局变量:定义在函数外部的变量
多变量声明
var a,b,c int = 1,2,3
var a,b,c = 1,2,3 //变量组
var(
name = ""
age = 23
sex = ""
)
零值
- 空判断 a == nil
- int 0 float 0.0 string ""
- 切片是引用类型,零值是nil
变量定义了必须使用,否则报错
常量的声明
定义方式
显式类型定义:
const B string = "hello"
隐式类型定义:使用类型推断
const B = "hello"
使用情况:常量定义后可以不使用,不会报错
多常量声明
//常量组
const(
P1 = "hello"
P2 = "golang"
)
一个常量如果没有初始值,则默认与上一行的常量值一致
枚举类型
使用常量组作为枚举类型,一组相关数值的数据。
const (
SPRING = 1
SUMMER = 2
AUTUMN = 3
WINTER = 4
)
注意事项
- 常量的数据类型只能是:布尔型,数字型(整数型,浮点型,复数),字符型
- 不曾使用的常量,不会报错
- 显式指定数据类型时,必须确保常量值与类型一致,需要时可做显式转换。
iota常量
定义:
特殊常量,可以认为是一个被编译器修改的常量
理解:iota是相对const而言的,每创建一个const就会有一个iota,初始值是0,每当定义一个常量它的值就自增1,直到下一个const出现并清零。
const (
SPRING = iota //iota == 0
SUMMER //iota == 1
AUTUMN = "haha" // haha iota仍然会自增1 iota == 3
WINTER //haha iota仍然会自增1 iota == 4
SPRING2 = iota //iota == 4
SUMMER2 //iota == 5
AUTUMN2 //iota == 6
WINTER2 //iota == 7
)
最新文章
- java第六次作业
- Tyvj 题目1463 智商问题(分块)
- 创建与合并分支-git入门教程
- MD5加密(16/32)
- [转载] C++ STL string的Copy-On-Write技术
- 【BZOJ 1013】 [JSOI2008]球形空间产生器sphere
- 8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句
- Fedora 下安装codeblocks
- 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据
- [Swift]LeetCode263. 丑数 | Ugly Number
- Android 异步框架 RxJava2
- Traceur
- Java8 in action
- 独家 | 蚂蚁金服TRaaS技术风险防控平台解密
- Python编程工具pycharm的使用
- 解决 Class not found和Base table or view not found: 1051 问题
- HTML5中的本地、WebSql、离线应用存储
- C#关于排程举一个小例子
- registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped.
- [原]零基础学习视频解码之安装ffmpeg