Golang语言社区--Go语言基础第二节变量

大家好,我是社区主编cserli(或者大家叫我彬哥也可以),Golang语言社区一直致力于Go语言相关技术干货的分享,希望初学者可以少走些弯路,我仅仅是提供一个快捷学习的平台,希望越来越多的人熟知Go语言。这节课给大家带来的是关于Go语言的基础变量的文章。不管任何开发语言,变量是我们首选熟知的一个名词,那么什么是开发语言的变量哪?变量其实就是随着某些关联的条件发生变化后,变量的数据随之改变的一个具有固定意义但值不确定的名词。

那么Go语言是如何定义和使用变量那?如下

变量声明语句:

var 变量名 变量类型

例子:

var v1 int           // 整数  
var v2 string         // 字符串
var v3 [10]int               // 数组
var v4 []int                  // 数组切片
var v5 struct {        // 结构体
    f int
    d string
}  
var v6 *int                  // 指针
var v7 map[string]int        // map,key为string类型,value为int类型
var v8 func(a int) int       

可以使用一个var关键字同时声明多个变量:

var (
    v1 int
    v2 string
    v3 map[string]int    
)

如果在声明变量的同时还进行了初始化,则var关键字可以省略,并且Go编译器可以从初始化表达式的右值推导出该变量应该声明为哪种类型,这有点类似于动态类型,但Go实际上是强类型的语言(静态类型语言)。

如下所示三种用法的效果是一样的:

var v1 int = 10
v2 int = 10    // 编译器自动推导出v2的类型
v3 := 10      // 编译器自动推导出v3的类型

说明:

":="用于明确表达同时进行变量声明和初始化工作,但要注意出现在:=左侧的变量不应该是已经被声明过的,否则会导致编译器报错,如下:

var i int
i := 2     //error

这节就暂时到这里,下节课我们来聊聊常量在Go语言中的相关知识。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我是业余自学C/C++的

基数排序

1264
来自专栏java一日一条

5 分钟搞定 Java Comparable 接口

还有一个不错的视频(https://marcus-biel.com/java-comparable-interface-video-tutorial/)。

794
来自专栏轮子工厂

设计模式(四) | 简历复印与原型模型不得不说的一些事

663
来自专栏猿人谷

O(n)时间的排序

题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。      题目特别强调是对一个公司的员工的年...

1958
来自专栏大史住在大前端

野生前端的数据结构练习(9)冒泡排序,选择排序,插入排序

bubble sort的是最基本的算法,被誉为永远会被考从来不被用的算法,基本原则是大数右移,每轮遍历后最右侧的数是最大的,所以下一轮循环时可不予考虑,时间复杂...

622
来自专栏coding for love

JS进阶系列

在JS入门难点解析系列中,我们对JS的一些重要概念,比如:作用域,作用域链,原型,原型链,继承,活动对象,this,执行环境,变量声明,函数声明等进行了详细的分...

601
来自专栏青青天空树

成绩大排队

其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

652
来自专栏LeetCode

LeetCode <dp>64. Minimum Path Sum

Given a m x n grid filled with non-negative numbers, find a path from top left t...

1230
来自专栏前端说吧

JS-几大排序算法(更新中...)

3205
来自专栏java一日一条

5 分钟搞定 Java Comparable 接口

我们应该如何对事物进行比较和排序?这问题听上去有点莫名其妙,但我希望你认真考虑一下。比方说,我们有一组苹果:

321

扫码关注云+社区