读书人

[Go] - 变量的宣言和定义

发布时间: 2013-04-02 12:35:26 作者: rapoo

[Go] --- 变量的声明和定义

Email : hahayacoder@gmail.com

1 Go中变量的声明和JavaScript很像,使用var关键字

2 Go中变量的声明、定义有好几种形式

//声明并初始化一个变量

var m int = 10

//声明初始化多个变量

var i, j, k = 1, 2, 3

//多个变量的声明(注意小括号的使用)

var(

no int

name string

)

//声明时不指明类型,通过初始化值来推导

var b = true//bool型

//一种简单的方式等价于varstrstring="Hello"

str := "Hello"

//Go中有一个特殊的变量_任何赋给它的值将被丢弃
_, Ret:= 2, 3

3 Go的编译器对声明却未使用的变量在报错

4 和C语言一样,Go语言中也是使用分号来终结语句。但是和C语言不同的是,Go语言的词法分析器在扫描源代码的过程中使用简单的规则自动插入分号,因此在编写源代码的多数时候就不需要加分号了。

5 Go语言词法分析器插入分号的规则:如果在一个新行前方的最后一个标记是一个标识符(包括像int和float64这样的单词)、一个基本的如数值这样的文字、或以下标记中的一个时,会自动插入分号

6 通常Go语言仅在for语句中使用分号,以此来分开初始化器、添加和增量。还有一种情况就是,当你在一行中写了多个语句,也需要使用分号来分开

7 由于Go语言词法分析器添加分号的特殊性,所以在有些情况下需要注意了:你都不应该将一个控制结构(if、for、switch或select)的左大括号放在下一行。如果这样做,将会在大括号的前方插入一个分号,这可能导致出现不想要的结果。

8 学习的小例子

// Var project main.gopackage mainimport ("fmt")func main() {//声明并初始化一个变量var m int = 10fmt.Printf("定义的变量值为:%d \n", m)//声明初始化多个变量var i, j, k = 1, 2, 3fmt.Printf("定义的变量值为:%d、%d、%d \n", i, j, k)//声明时不指明类型,通过初始化值来推导var b = true //bool型if b == true {fmt.Printf("bool值为真.\n")}//一种简单的方式 等价于 var str string = "Hello"str := "Hello"fmt.Printf("定义的变量值为:%s \n", str)//Go的编译器对声明却未使用的变量在报错//使用保留字var声明变量 然后给变量赋值var number intnumber = 121fmt.Printf("定义的变量值为:%d \n", number)//变量定义的另一种形式 这种情况下变量的类型是由值推演出来的text := "hahaya"fmt.Printf("定义变量的值为:%s \n", text)//多个变量的声明(注意小括号的使用)var (no   intname string)no = 1name = "hahaya"fmt.Printf("学号:%d \t 姓名:%s \n", no, name)//多个变量声明、定义的另一种形式x, y := 2, "ToSmile"fmt.Printf("学号:%d \t 姓名:%s \n", x, y)//Go中有一个特殊的变量_ 任何赋给它的值将被丢弃_, Ret := 2, 3fmt.Printf("变量的值为:%d \n", Ret)}

1楼qpc411074777昨天 21:37
这是什么?n变量吗?n可是变量没法数啊?n额。。。。。。。n我感觉像是貌似习惯用DOS的go和varn能吧dos的go和var的程序源码搞出来吗?n能不能讲一下DOS的宏操作,貌似更好玩的,确实很好玩,建议虚拟环境下玩。
Re: qiurisuixiang昨天 22:50
回复qpc411074777n哈哈 开始确实不习惯啊nDOS的宏操作,能不能给我科普下呀 ?

读书人网 >编程

热点推荐