golang的变量
2024-09-06 12:23:36
(1)
只声明:var 变量名字 类型
var a int
var a, b, c,d int
只有类型,如果初始化表达式被省略,那么将用零值初始化该变量,零值初始化机制可以确保每个声明的变量总是有一个良好定义的值,
因此在Go语言中不存在未初始化的变量。具体如下:
布尔类型变量对应的零值是false,
数值类型变量对应的零值是0,
字符串类型对应的零值是空字符串,
接口或引用类型(包括slice、指针、map、chan和函数)变量对应的零值是nil。
数组或结构体等聚合类型对应的零值是每个元素或字段都是对应该类型的零值。 (2)声明并初始化:var 变量名字 类型 = 表达式
var a int = 2
var a, b, c, d int = 1,2,3,4
类型和表达式均有,完整的变量声明及初始化。 (3)声明并初始化:var 变量名字 = 表达式
var a = 2
var a, b, c, d = 1,2,3,4 只有表达式,如果省略的是类型信息,那么将根据初始化表达式来推导变量的类型信息。 (4)简短声明并初始化(但是不能用于全局变量,只能用在函数内部):
变量名字 := 表达式
a := 4
a, b, c, d := 1,2,3,4
简称简短声明, (5)内置函数new。 表达式new(T)将创建一个T类型的匿名变量,初始化为T类型的零值,然后返回变量地址,返回的指针类型为*T。 p := new(int) // p, *int 类型, 指向匿名的 int 变量
fmt.Println(*p) // "0"
*p = 2 // 设置 int 匿名变量的值为 2
fmt.Println(*p) // "2" (6)简短声明与赋值语句区别 和var形式声明语句一样,简短变量声明语句也可以用来声明和初始化一组变量:但是至少有一个变量是没有被声明的 i, j := 0, 1 但是这种同时声明多个变量的方式应该限制只在可以提高代码可读性的地方使用,比如for语句的循环的初始化语句部分。 请记住“:=”是一个变量声明语句,而“=”是一个变量赋值操作。也不要混淆多个变量的声明和元组的多重赋值(§2.4.1),后者是将右边各个的表达式值赋值给左边对应位置的各个变量: i, j = j, i // 交换 i 和 j 的值
(7)特殊变量:下划线
相当于垃圾桶,
(8)没有隐式转换,只能显式转换,且两者类型要兼容。
var a int = 8
b := float64(a) //b的类型为浮点型float64,值为8
-----------------------------------------------
var a float64= 8.0123
b := int(a) //b的类型为整型int,值为8,丢失精度 (9)可见性。
针对包级变量(函数外声明的变量),如果首字母大写,则其他包可以使用;如果首字母小写则只能包的所有源文件可见
最新文章
- QT210 Android4.0源码编译和烧录文档整理
- int 与Integer的用法与区别
- android Intent的startActivityForResult()方法
- 移动端转PC -->; PC跳转移动端
- 通过Linux系统Cron执行OwnCloud计划任务
- (转).net程序员转战android第一篇---环境部署
- Struts2 注解(转)
- WPF学习(9)样式和行为
- ubunt tftp服务器搭建
- DB2 数据库的安装配置及监控
- js递归算法1+ 2+3.....100的和
- mysql几种关联的区别
- idea Connection to SQL Server - 公网8 failed java
- MySQL学习(六)
- 第二阶段——个人工作总结DAY06
- mac 蓝牙开启调试模式
- 记录:将图片数据生成 tfrecords 文件并在训练使用时读取
- java翻译到mono C#实现系列(3) 获取手机设备信息(残缺,)
- hdu 2437(dfs)
- Wait--查看等待
热门文章
- Linux-c glib库hash表GHashTable介绍
- 【心无旁骛】vuex-typescript-example
- js实现事件委托
- 关于dictionary和tuple充当函数参数
- 微信回调校验失败兼容php7
- [编织消息框架][JAVA核心技术]动态代理应用4-annotationProcessor
- 阿里云提供全托管 ZooKeeper
- SQL Server数据库存储过程的异常处理
- Golang Learn Log #0
- 多对多关联懒加载导致failed to lazily initialize a collection of role: 实体类, could not initialize proxy - no Session 追加配置fetch = FetchType.EAGER解决