14

【Go从学会到学废】(二) Hello World

 3 years ago
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 直接运行

fi2ABjv.png!mobile

image-20201014222035496

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

eAVNz27.png!mobile

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 (事实上是谷歌创始人贡献了这个关键字)

有疑问加站长微信联系

iiUfA3j.png!mobile

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK