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语言中的相关知识。

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

如有侵权,请联系 zhuanlan_guanli@qq.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术与生活

Lambda 深入浅出

非常简单,那么问题来了,如果这个时候需求变动,要求选择的是红色的并且重量大于10的,那么怎么办。小 case,不就一行代码的事

702
来自专栏带你撸出一手好代码

浅谈 var 关键字

提起 var关键子,程序员的第一反应就是JavaScript, 事实上这个关键子在其他语言中也有被采用。 比如说C#, 比如说kotlin, 用法和JavaSc...

2618
来自专栏Modeng的专栏

Javascript数组系列二之你不了解的迭代1

我们在《Javascript数组系列一之栈与队列》中介绍了一些数组的用法。比如:数组如何表现的和「栈」一样,用什么方法表现的和「队列」一样等等一些方法,因为 J...

1124
来自专栏程序员互动联盟

【编程基础】main函数,你知道多少?

近期学习时对这个问题产生了迷惑,看到了这篇文章,感觉挺好。 在C/C++的学习过程中,一个很常见的问题就是void main和int main有什么区别呢?本文...

3428
来自专栏Laoqi's Linux运维专列

Python for 循环语句

3508
来自专栏编程

Python变量作用域

今天我们要说的是:变量的作用域 什么是作用域呢? 作用域就是某一个事件或者物体在某种情况下产生的特定的作用或效果(画外音:能不能说人话?) 好吧,那常老师来举个...

1696
来自专栏用户2442861的专栏

《Effective Modern C++》读书笔记

Note:为避免各种侵权问题,本文并没有复制原书任意文字(代码除外,作者已经声明代码可以被使用)。需要原书完整中文翻译的读者请等待官方译本的发布。

461
来自专栏Java学习网

Java 8的函数式编程学习

Java 8的函数式编程学习 函数式编程语言是什么? 函数式编程语言的核心是它以处理数据的方式处理代码。这意味着函数应该是第一等级(First-class)的...

2257
来自专栏Python小屋

Pythonic:递归、回溯等5种方法生成不重复数字整数

问题描述:从0到9这10个数字任选3个不重复的数字,能构成哪些三位数? So easy!看到这样的问题,很多人会写出类似(注意,只是类似,我为了使得本文几个函...

3507
来自专栏编程

关于python字典类型最疯狂的表达方式

[译]关于python字典类型最疯狂的表达方式 一个Python字典表达式谜题 这个子字典是从哪里来的 Umm..好吧,可以得到什么结论呢? 一篇来自 Dan ...

18110

扫描关注云+社区