- _先说一下划线,可以把它当成一个占位符,之前忽略,比如文件处理的时候,忽略异常。
os.Open,返回值为*os.File,error,普通写法是
//如果此时不需要知道返回的错误值
f,err := os.Open(xxxxxxx)
//如此则忽略了error变量就可以用
f, _ := os.Open(xxxxxx)
_还有一个用途,就是进行一个包的init操作,而不引入这个包,这么说有点抽象,比如 jpg包中的init函数注册了一个“jpg”的输入流,如果直接引用 “jpg” 包,而不进行任何操作,报错是一定的。main包里只要一个可以直接用“jpg”的输入流,而不用“jpg”包里的任何函数,这时,就可以
import _ "jpg"
- 变量的类型与C差不多,定义有些区别,总结如下:
使用var
关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型放在变量名后面:
//定义一个名称为“variableName”,类型为"type"的变量var variableName type
1 定义多个变量
//定义三个类型都是“type”的变量
var vname1, vname2, vname3 type
2 定义变量并初始化值
//初始化“variableName”的变量为“value”值,类型是“type”
var variableName type = value
3 同时初始化多个变量
// 定义三个类型都是"type"的变量,并且分别初始化为相应的值 //vname1为v1,vname2为v2,vname3为v3
var vname1, vname2, vname3 type= v1, v2, v3
//定义三个变量,它们分别初始化为相应的值 vname1为v1,vname2
//为v2,vname3为v3 然后Go会根据其相应值的类型来帮你初始化它们
var vname1, vname2, vname3 = v1, v2, v3
4 函数内初始化变量 只能用在局部变量中
//定义三个变量,它们分别初始化为相应的值 vname1为v1,vname2为v2,vname3为v3 编译器会根据初始化的值自动推导出相应的类型
vname1, vname2, vname3 := v1, v2, v3
5 定义风格
import(
"fmt"
"os"
)
const(
i = 100
pi = 3.1415
prefix = "Go_"
)
var(
i int
pi float32
prefix string
)
网友评论