标签:全局变量 地址 其他 shu main 错误 编译 因此 一个
今天开始,我们来写代码。
学习一门语言,最快的方式就是写代码,做项目。
别的学习教程,都是hello world.
我们就来点不一样的吧。我们不一样!不一样!不一样!
首先,打开VSCODE.( 关于VSCODE配置,见:https://www.jianshu.com/p/83beca927c9e,https://zhuanlan.zhihu.com/p/59879132)
写代码:
package main
var x, y int
var ( // 这种因式分解关键字的写法一般用于声明全局变量
a int
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"
func main(){
g, h := 123, "hello"
println(x, y, a, b, c, d, e, f, g, h)
}
输出结果为:
0 0 0 false 1 2 123 hello 123 hello
我们来一一说明:
1)var x, y int
这里通过var关键词,来定义变量 x,y,并且golang自动赋值为0.所以结果打印都为:0
2)var (
a int
b bool
)
这种声明方式,一般用在全局变量。其中bool为布尔值,默认值为:false.
3)var c, d int = 1, 2
golang可以定义多个变量的类型,并为变量赋值。
4)var e, f = 123, "hello"
golang也可以对不同类型的变量,同时赋值,并自动推导类型,这个就是:编译器推导类型的格式。
var 的变量声明还有一种更为精简的写法,例如:
这是Go语言的推导声明写法,编译器会自动根据右值类型推断出左值的对应类型。
注意:由于使用了:=
,而不是赋值的=
,因此推导声明写法的左值变量必须是没有定义过的变量。若定义过,将会发生编译错误。
5)g, h := 123, "hello"
这种不带声明格式的只能在函数体中出现。
短变量声明的形式在开发中的例子较多,比如:
- conn, err := net.Dial("tcp","127.0.0.1:8080")
net.Dial 提供按指定协议和地址发起网络连接,这个函数有两个返回值,一个是连接对象(conn),一个是错误对象(err)。如果是标准格式将会变成:
- var conn net.Conn
- var err error
- conn, err = net.Dial("tcp", "127.0.0.1:8080")
因此,短变量声明并初始化的格式在开发中使用比较普遍。
注意:在多个短变量声明和赋值中,至少有一个新声明的变量出现在左值中,即便其他变量名可能是重复声明的,编译器也不会报错,代码如下:
- conn, err := net.Dial("tcp", "127.0.0.1:8080")
- conn2, err := net.Dial("tcp", "127.0.0.1:8080")
上面的代码片段,编译器不会报 err 重复定义。
以上代码,全部可运行。建议用IDE写代码并运行。
[易学易懂系列|golang语言|零基础|快速入门|(四)]
标签:全局变量 地址 其他 shu main 错误 编译 因此 一个
原文地址:https://www.cnblogs.com/gyc567/p/11875271.html