1、新建Hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
2、运行
你可以输入 go run Hello.go
直接运行
也可以先编译 go build Hello.go
在运行
3、解释
1.package main
文件包名,指明文件所处的包位置,默认设置为该文件所处的文件夹名字。如文件
test.go
,则test.go
的包名即为test
。这里包名命名为main并不是说,它在文件夹main下,而是说它是一个主文件,是一个项目或者模块的主程序,意味能直接编译运行的源码文件。算是go程序的主入口。一个项目一个主程序入口。
-
与java不同的是:
在java中,任何一个java文件都可以有唯一一个main方法当做启动函数
在go中,则是任何一个package中,都可以有唯一一个带有main方法的go文件
2.import "fmt"
- 导入包
- 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块
- ==不用的包一定不要导入,会报错==
- 当然Go的import还支持如下两种方式来加载自己写的模块:
相对路径import "./model"
//当前文件同一目录的model目录,但是不建议这种方式import
绝对路径import "shorturl/model"
//加载GOPATH/src/shorturl/model模块
1、包使用的时候通常用最后一层路径来引出方法或变量:
import "xxx.com/go-qb/db"
用法:db.X()
2、如果想重命名,在引用前面加别名即可:
import mysql "xxx.com/go-qb/db"
用法:mysql.X()
3、如果想不加前缀,在引用前面加 . 即可:
import . "xxx.com/go-qb/db"
用法:X()
3.func main()
-
在golang中有两个特殊的函数,
func main
func init
main函数不用介绍在所有语言中都一样,它作为一个程序的入口,只能有一个。
init函数在每个package是可选的,可有可无,甚至可以有多个(但是强烈建议一个package中一个init函数),init函数在你导入该package时程序会自动调用init函数,所以init函数不用我们手动调用,l另外它只会被调用一次,因为当一个package被多次引用时,它只会被导入一次
=={}必须紧随(),不能换行,这是Go强制规定==
4.fmt.Println("Hello World")
- ==
Println
首字母大写,不可能是小写,具体原因下章讲==
类似于C中
printf("Hello World");
类似于C++中
cout<<"Hello World"<<endl;
类似于java中
System.out.println("Hello World");
类似于Python or Lua中
print("Hello World");
个人观点
- 函数关键字为什么是
func
,为什么不写全function
或者像Python
那样def
(事实上是谷歌创始人贡献了这个关键字)
有疑问加站长微信联系(非本文作者)