Skip to content

变量 beta

变量声明都是以关键字var为开头,紧接着就是变量名类型,变量类型具体详细讲解要看章节变量类型,为了简单方便学习,统一使用 string 类型做举例,后期随着深入变量类型再一一增加

var 变量名 类型

1.标准声明

实际上使用看起来很简单,可以看下面的例子

前端学习提示

和前端语言JavaScript一样,ES5 变量都是以关键字var为开头,只不过加了强类型,还有去除烦人分号(;), 切换下方卡片选项看看它们的不同点吧!

go
var s string
js
var s;

提示

哦对了,变量如果光声明不赋值的状态下,和其他语言一样会有个默认值,这里不展开讲,后面在基础类型中再详细讲解,可不要忘记这个事,实际上在强类型语言中很重要

2.变量初始化【赋值】

2.1 正常初始化

声明变量的时候为其指定初始值。变量初始化的标准格式如下:

var 变量名 类型 = 值
go
var s string = "Hello"

// 同样的也可以先声明再初始化【赋值】
var str string
str = "Hello Goland"
js
var s = "Hello";

// 同样的也可以先声明再初始化【赋值】
var str;
str = "Hello Goland";

2.2 类型自动推导

其实 go 语言有更简便的方法,让程序自动识别,是不是看起来简单多了

go
var s = "Hello"
js
var s = "Hello";

2.3 短变量声明

类型自动推导已经够简洁了,实际上有更加简便的方式,通过:=短变量声明,这也是最常用的声明方式

go
s := "Hello"

注意

实际上短变量声明还有使用条件的

  • 只能在函数func内部使用
  • 放在函数func外是编译不通过的
  • 需要赋值的变量首次使用

2.4 匿名变量

  • 常用用于占位
  • 函数func输出多个变量时候

用于忽略不使用值,防止占用内存

go
_, v := getData()
js
var { value } = getData();
前端学习提示

和前端不同点,go 不使用的值需要使用_(匿名变量)做处理,函数返回的时候不像前端一样返回一个对象,为了更好的内存使用, go 中大多数返回一个或多个基础类型,而在 前端 ES6 中我们可以从返回的对象Object中单独取出来需要使用的值或者全部取出

2.5 完整示例

go
package main

import "fmt"

var s string = "Hello"

func main() {
	fmt.Println(s) // Hello

	var str string
	str = "Hello Goland"

	fmt.Println(str) // Hello Goland

	var t = "我是类型自动推导"

	fmt.Printf("类型 %T\n", t) // 类型 string
	fmt.Println(t)           // 我是类型自动推导

	r := "我是短变量声明"

	fmt.Println(r) // 我是短变量声明

	_, v := getData()

	fmt.Println(v) // 返回值
}

func getData() (index string, item string) {
	index = "索引"
	item = "返回值"
	return
}

Released under the MIT License.