第一个GO程序
package main
import("fmt")
func main(){
fmt.Println('hello world')
}
其中第一行的package表示包名,此处是main包 import表示导入软件包,此处导入了名称位fmt的软件包
fmt.Println()表示从标准输出流输出,其中Println是一个自带换行的print函数
变量相关
GO是一种强变量类型的语言,他用var来声明变量,变量名称后面跟着变量类型
var a = "initial"
var b,c int = 1,2
var e float64
使用:=对变量进行定义后,编译器会自动对变量的类型进行推导\
GO使用const声明常量,同样的,在常量名后面可以跟上变量类型,如果不跟上那么会自动推导
const s string = "const"
const h = 50000
程序控制流相关
程序控制和c没有什么不同的,区别就在于if后面无需用括号包含条件表达式,如
if 7%2==0{}
GO中没有do while循环和while循环,使用for循环就可以等价的进行while循环和do while循环了\
for{
//代码内容,相当于while(true)
}
for j:=7;j<9;j++{
//相当于标准的for
}
i:=1
for i<=3{
//相当于while循环
}
GO中同样有switch语句,只不过go中的switch语句更为强大,case后面不仅仅只能是数字,也可以是表达式,十分灵活\
go中的数组定义方式和c等语言类似
b:=[5]int{1,2,3,4,5}
定义了一个长度为5并且初始化了数据的数组\
数组不利于扩容,灵活性差,因此go中更常使用的是切片,它类似于python中的list,有着append(追加)copy(复制)等操作,并且可以用make([]string,len(s))来构建切盘,[]表示切盘,string表示切片类型,len为某个字符串长度\
Go中的函数
func 函数名(参数表)(返回值表)
值得一提的是go语言的函数是可以和python一样有多返回值的
Go中函数的传参方式同样有引用传递和值传递,引用传递要用&标记,在函数参数表的变量类型前要用*表示
GO使用
type 名称 struct{}
来声明结构体,其中也可以包含一系列的属性和方法,它类似于c++和java中类的概念
和其他语言不同,GO中的错误处理是将错误以一个error类型的变量返回,而不是使用常见的try-catch机制,虽然try-catch机制实际上适用于处理异常的而不是用于处理错误的,错误和异常有着很大的区别。