变量命名原则

go语言的变量名有字母数字和下划线组成,首字母不能为数字,但是字母不仅仅只限于英文字母,所有的UTF-8字符都是可以的。

变量声明和初始化方式

使用var关键字

var a int =  9
var str string ="jisuanji"

注意,Go语言变量类型放在变量名之后!

如果上面的代码段没有初始化值,那么变量就会被初始化为对应类型的零值。

var a int

这个代码片段声明了一个int类型变量a,并把a初始化为int零值,即0。

忽略类型

这种声明和初始化变量的方式相比于第一种,就是省去了变量的类型,Go语言编译器可以根据你的初始值自动判断出类型。例如:

//这里面的a被自动识别为int类型。
var a = 5

直接初始化

这种方法定义和初始化变量,既不需要var关键字,也不需要指定类型,快捷又方便,实际的代码中建议用这种方式。

a:=3

以上代码段定义了一个变量a,并把它初始化为3。

多变量声明

Go语言可以同时声明和初始化多个变量这个和Python有点像,具体语法如下:

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3//和python很像,不需要显示声明类型,自动推断
var vname1, vname2, vname3 = v1, v2, v3
//出现在:=左侧的变量不应该是已经被声明过的,且只能在函数体内出现
vname1, vname2, vname3 := v1, v2, v3 

代码示例

package mainimport "fmt"var c,d int = 1,2
var e,f = 123,"hello"func main(){var v21 int32  //被定义初始化为0var v22 int = 2var v23 = 3 //被自动识别为int类型v24 := 4    //简易声明&定义的方式v21 = int32(v23) //强制转换g, h := 123, "hello"//注意:下行这种不带声明格式的只能在函数体中出现fmt.Println("v21 is", v21) //v21被赋新值fmt.Println("v22 is", v22)fmt.Println("v23 is", v23)fmt.Println("v24 is", v24)fmt.Println(c, d, e, f, g, h)
}

运行结果:

v21 is 3
v22 is 2
v23 is 3
v24 is 4
1 2 123 hello 123 hello

golang 变量定义和初始化相关推荐

  1. golang 初始化并赋值_GoLang学习之变量定义和初始化

    变量命名原则 go语言的变量名有字母数字和下划线组成,首字母不能为数字,但是字母不仅仅只限于英文字母,所有的UTF-8字符都是可以的. 变量声明和初始化方式 使用var关键字 var a int = ...

  2. 【C语言】结构体变量定义、初始化、使用

    目录 前言 一.声明"结构体类型" 二.定义结构体变量 方法 1  先声明结构体类型,再定义结构体变量 方法 2 声明类型的同时定义变量 *方法 3 不指定结构体名(结构体标记), ...

  3. golang变量定义细节及beego环境搭建细节记录

  4. final变量要么定义时初始化,要么在代码块中初始化

    以上基于jdk1.8.final变量如果是静态的,要么定义时初始化,要么在静态代码块中初始化.final变量如果不是静态的,要么定义时初始化,要么在非静态代码块中初始化.  静态变量定义时初始化: 静 ...

  5. java静态变量定义_java静态变量、静态方法和静态代码段

    先上实例 public classTestStatic {public static String staticString = "this is a static String" ...

  6. C++ 笔记(05)— 变量(变量定义、声明、初始化、extern关键字、变量之间转换)

    1. 变量定义 变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储.变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示: type variable_list; ...

  7. java 定义类变量初始化吗_Java的变量有哪些类型?变量如何定义?如何初始化?请说明理由并举例_学小易找答案...

    [单选题]根据金杯萃取理论,咖啡萃取比较适合的参数是: (2.9分) [判断题]高分化的鳞状细胞癌恶性程度高,低分化的鳞状细胞癌恶性程度低. ( ) [简答题]第 3-4 节之间的关系是什么?在全诗结 ...

  8. 【C 语言】结构体 ( 结构体类型变量初始化 | 定义变量时进行初始化 | 定义隐式结构体时声明变量并初始化 | 定义普通结构体时声明变量并初始化 )

    文章目录 一.结构体类型变量初始化 1.定义变量时进行初始化 2.定义普通结构体时声明变量并初始化 3.定义隐式结构体时声明变量并初始化 二.完整代码示例 一.结构体类型变量初始化 1.定义变量时进行 ...

  9. (转载)你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化

    你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化 第3部分 C++世界众生相 在听过了HelloWorld.exe的自我介绍,完成了与C++世界的第一次亲密接触后,大家是不 ...

最新文章

  1. 高校宣布已建成世界一流大学,教育部回应!
  2. MySQL的分表和分区介绍
  3. eclpse中不小心关掉一些窗口怎么办?
  4. 浅谈协同过滤推荐算法
  5. dubbo快速实战(非最佳配置,演示用)
  6. oracle表空间查询维护命令大全之二(undo表空间)
  7. 面试65个问题教你怎么机智回答面试官及回答技巧
  8. 基于python技术的超市仓库管理系统
  9. 【图算法】(3) 网络的基本静态几何特征(二),附networkx完整代码
  10. 魅族u20怎么刷Android,魅族魅蓝U20/U10一键Root权限获取+USB驱动安装
  11. react native 8081 端口号被占
  12. 解决许可证的相关问题
  13. GATK GATK best practices notes
  14. 单片机复位电路是怎么工作的?
  15. java 导入pem文件_将PEM导入Java密钥库
  16. 实用的一些网站 合集
  17. 中国地址英文翻译,英文网站注册
  18. javaweb JAVA JSP汽车配件销售系统jsp配件销售网站 (jsp电子商务系统,购物商城)在线购物案例
  19. OA协同办公系统对于企业的作用
  20. 【ROS Gazebo专题】四、将Fetch机器人放到Gazebo中进行玩耍

热门文章

  1. Linux_Bash脚本基础
  2. YTKNetwork使用application json方式传递参数
  3. (1)java虚拟机概念和结构图
  4. iOS之NSString类中compare方法的陷阱
  5. Skype 6.0正式版登场 免费下载
  6. Linux容器演变史
  7. SVM(支持向量机)之Hinge Loss解释
  8. ReentrantLock 实现原理
  9. JavaScript中函数作为另一个函数的参数的时候它存在于哪个作用域
  10. 前端学习 -- Css -- 盒子模式