标签:
var v1 int // 整型 var v2 string // 字符串 var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { // 结构体 f int } var v6 *int // 指针 var v7 map[string]int // map,key为string类型,value为int类型 var v8 func(a int) int // 函数
通过上面的例子,我们可以看到而“变量类型”是放在最后的。这跟我们的javascript是不同的,由于javascript是一们弱语言,不需要说明变量的类型的。综合上面的例子,我们知道了Go的变量声明语法如下:
var “变量名” “变量类型”
有一点需要提醒的是,我们发现上面例子中,Go语言的每个语句后面都没有分号。Go是没有要求在每个语句结束位置夹分号的。如果你吃饱了撑着,也是可以加的,编译也是可以通过的。这点事跟C或者C++不一样的,C/C++不加分号是不可以通过编译的。
var ( v1 int v2 string )
这有点儿像javascript里面的"单var模式"声明变量呢!
下面再来看看怎样初始化变量吧!
var v1 int = 10 // 正确的使用方式1 var v2 = 10 // 正确的使用方式2,编译器可以自动推导出v2的类型 v3 := 10 // 正确的使用方式3,编译器可以自动推导出v3的类型
var i int i := 2
no new variables on left side of :=
我们已经知道了变量的声明和初始化了,下面再来看看常量这个东西吧。javascript是没有常量的,但是C/C++就有,其实,Go的常量定义和C是相像的,都是通过const关键字。请看下面的例子:
const Pi float64 = 3.14159265358979323846 const zero = 0.0 // 无类型浮点常量 const ( size int64 = 1024 eof = -1 // 无类型整型常量 ) const u, v float32 = 0, 3 // u = 0.0, v = 3.0,常量的多重赋值 const a, b, c = 3, 4, "foo" // a = 3, b = 4, c = "foo", 无类型整型和字符串常量
const mask = 1 << 3
const Home = os.GetEnv("HOME")
func 函数名(参数列表)(返回值列表) { // 函数体 } //对应的一个实例如下: func Compute(value1 int, value2 float64)(result float64, err error) { // 函数体 }
/* 块注释 */ // 行注释
//对应的一个实例如下: func Compute(value1 int, value2 float64)(result float64, err error) { // 函数体 }
报错内容如下:
syntax error: unexpected semicolon or newline before {
正确的写法应该把函数的左花括号放在第一行的末尾,如下:
//对应的一个实例如下: func Compute(value1 int, value2 float64)(result float64, err error) { // 函数体 }
标签:
原文地址:http://www.cnblogs.com/yugege/p/4856001.html