Go语言基础语法
如题,从Python转过来的,特此记录一下Go语言的基础语法。下列所有关键词均可转换成Python。
Go中有一个很奇怪的特性,即大括号不能换行写,这让我C#的语法很难习惯。
例如:
if x > 1 {
}
这个是合规的,但
if x > 1
{
}
这个就通过不了编译。
形如"A - B"指的是Go语言语法——Python语法
基本语法
导入包 | import - import
基本导入
导入一个基本包,这里和Python一样。
import "fmt"
import fmt
as语法
本语法相当于Python中的as关键词。可以将部分比较拗口/长的包名转换成比较容易记的包名。如将tensorflow转换成tf。
import (
format "fmt"
)
import fmt as format
文件夹式导入
在Python里面,我们可以使用形如import a.b.c的方法导入一个文件夹包,也称作相对导入。Go语言里可以使用
import "xx/abc"的方法导入。
go.mod的require
需要GO111MODULE支持
在一个包里,我们可以在go.mod里通过require导入需要的包(当然需要提供版本号),这样go语言就不会先找%GOPATH%\src目录,而是先找%GOPATH%/pkg下。
来点示例
下方Go代码和Python代码等价(库除外)。
import fmt
func main(){
var x int
var y string = "Hello World!"
var arr [5]int
fmt.Scanln(&x)
fmt.Println(y)
fmt.Println(x+1)
}
import format
if __name__ == "__main__":
x = int(input())
y: str = "Hello World!"
arr: list = []
print(y)
print(x+1)
输入输出 | input - Scan
go语言里使用fmt.Scan(&x)来进行输入,使用fmt.Println("")来进行输出。这个和python语言的input和print比较像。
数组 | [] - []type
go语言里数组的声明方式和python里有些区别,go使用var Name [length]Type,而Python使用Name: list = []进行声明。