

【Go从学会到学废】(二) Hello World
source link: https://studygolang.com/articles/31177
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1、新建 Hello.go
package main import "fmt" func main() { fmt.Println("Hello World") }
2、运行
你可以输入 go run Hello.go
直接运行

image-20201014222035496
也可以先编译 go build Hello.go
在运行

image-20201014222145101
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
(事实上是谷歌创始人贡献了这个关键字)
有疑问加站长微信联系

Recommend
-
192
“Hello, World!”: Snapdragon X50 5G modem makes its first 5G data connection [video]Oct 16, 2017Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiari...
-
81
TensorFlow--Hello World
-
75
除非特别声明,此文章内容采用知识共享署名 3.0许可,代码示例采用Apache 2.0许可。更多细节请查看我们的服务条款。
-
57
Time to “Hello, World”: VMs vs. containers vs. PaaS vs....
-
68
Random musings
-
26
Go声明变量方法: Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 声明变量的一般形式是使用 var 关键字: 第一种声明变量方法: var identifier type var identifier1...
-
12
目前工作中有不少涉及到地图的项目,我参加了几次技术评审,前端伙伴们在 WebGIS 方面的知识储备稍有不足,这次分享的主要目的是科普一些在前端领域比较常用的 WebGIS 知识。另外,我之前的工作中积攒了一些从零开始搭建 WebGL 地图引擎的微薄经验,虽然最终遗...
-
7
讲个小笑话昨天下完班,好久才回到家,就因为公司楼下的停车场设计的和迷宫一样,每次都要找好久,才能发现,我没有车o(╥﹏╥)o。欢迎关注”前端胖头鱼“公众号,也许你为素未谋面,但很可能相见恨晚...
-
2
V2EX › 程序员 学废了: JDBC 的 prepareStatement 需要关闭吗? heavyrainn · 2 小...
-
6
大众电动车学废了:车机导航状态弹广告,客服回应“今后还有”
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK