一、Go的语言基础部分由这几个部分组成函数
好比下面这个简单的代码:学习
func main() { fmt.Println("第一个程序") }
须要注意的是,若是想把单独的.go文件做为独立的可执行文件的时候。须要在代码的第一行加上code
package main
文件的入口方法为:get
func main(){ }
go的语法和c是很像的,可是又没有c那么底层。因此有c基础的人,学习go会特别的快。须要注意的一点是:string
go声明变量的时候是把变量类型放在变量的后面的,就像这样:
var a string = "abc"
go也能够不指定数据类型,可是必需要赋值。若是不赋值,自动类型检查就没法起到做用基础
哪怕你直接这样:变量
var a=""
附一个空格值给变量也是能够的,就是不能不赋值,也不能为null。并且在go中也没有null的概念,取而代之的是nil:意思为0、无的意思。数据类型
还可使用默认值,就像这样:语法
var a bool
输出为:false程序
//没有进行赋值,可是指明了是什么类型、go会自动加上空值。 var a string
//能够不指定变量类型,经过变量值,go会自行判断该变量的类型。 var a=1
//这种方式是省略了var,可是这种方式能对新的变量使用,对已经声明的变量使用会报错。 a:=1
注:
三种变量的声明形式的做用都是同样的,要么赋值可自动判断其类型,要么不赋值,指定变量类型,就这么两点。还须要注意的是,go的变量是若是被声明了,那么必须使用,否则会报错,若是不想使用能够加上_=varName,表示为已抛弃的变量。
//已声明,但未使用 var a=1 //标识为已抛弃的变量。 _=a
还须要重点强调的点:
- go的变量在已经被声明后,是不能使用:=再次赋值的。
//这样是错误的 var a=1 a:=2
可是可使用=为已声明的变量赋新的值。
//这样作是能够的。 var a=1 a=2
并且若是变量值没被使用,那么请加上以抛弃的标识。
_=a
go能够直接声明多个变量,经过函数能够返回多个返回值,好比:
//一次性声明全部的变量类型为string类型 var name1,var name2,var name3 string //函数返回多个返回值 func getName(name1,name2,name3,name4){ return "aa","bb","cc","dd" } //返回多个返回的值的函数须要用多个变量进行接受 var a, b, c, d = getName()
go可以使用var关键字声明全局变量,可是:=这种方式是不能用在全局变量中的。:=只能用在函数体内部。
var ( a int b bool xx,yy,dd string="xx","yy","dd" //这里省略变量类型也是能够的。 zz,aa="zz","aa" )
好比像这样,这样作会报语法错误
var( a:=1 )
syntax error: unexpected :=