Appearance
变量 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
}