[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语言词法分析器插入分号的规则:如果在一个新行前方的最后一个标记是一个标识符(包括像intfloat64这样的单词)、一个基本的如数值这样的文字、或以下标记中的一个时,会自动插入分号

 

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

 

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

 

8 学习的小例子

// Var project main.go
package main

import (
	"fmt"
)

func main() {

	//声明并初始化一个变量
	var m int = 10
	fmt.Printf("定义的变量值为:%d \n", m)

	//声明初始化多个变量
	var i, j, k = 1, 2, 3
	fmt.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 int
	number = 121
	fmt.Printf("定义的变量值为:%d \n", number)

	//变量定义的另一种形式 这种情况下变量的类型是由值推演出来的
	text := "hahaya"
	fmt.Printf("定义变量的值为:%s \n", text)

	//多个变量的声明(注意小括号的使用)
	var (
		no   int
		name string
	)

	no = 1
	name = "hahaya"
	fmt.Printf("学号:%d \t 姓名:%s \n", no, name)

	//多个变量声明、定义的另一种形式
	x, y := 2, "ToSmile"
	fmt.Printf("学号:%d \t 姓名:%s \n", x, y)

	//Go中有一个特殊的变量_ 任何赋给它的值将被丢弃
	_, Ret := 2, 3
	fmt.Printf("变量的值为:%d \n", Ret)
}


原文地址:https://www.cnblogs.com/javawebsoa/p/2992077.html