直接进入正题,在任何一个地方创建一个名为 helloworld.go 的文件,然后立马执行它:

cox@Cox:~/workspace/go/src$ touch helloworld.go
cox@Cox:~/workspace/go/src$ go run helloworld.go
package :
helloworld.go:1:1: expected 'package', found 'EOF'

简单吧,看错误信息,你现在应该知道,没有绑定到某一个 package 的文件是不被 Go 认可的,所以,我们都需要加上这么一个,我们在前面的那个 helloworld.go 文件里面加上:

package main

之后再来执行:

cox@Cox:~/workspace/go/src$ vi helloworld.go
cox@Cox:~/workspace/go/src$ go run helloworld.go
# command-line-arguments
runtime.main: undefined: main.main

恩,Go程序需要从某一个位置开始执行,就像电脑有电源开关一样简单,在 Go 中,程序都是从一个名为 main 的函数开始执行,所以,再加上这个函数:

package main

func main() {}

再来执行它:

cox@Cox:~/workspace/go/src$ vi helloworld.go
cox@Cox:~/workspace/go/src$ go run helloworld.go

恩,没报任何错误了,那也就是说我们现在的程序已经正确运行,但是因为 main() 没有做任何事情,所以我们现在什么也看不到,我们现在让它来打印出 “Hello World! 您好!世界。” 这个字符串:

package main

func main() {
    Println("Hello World! 您好!世界。")
}

又出错了:

# command-line-arguments
./helloworld.go:4: undefined: Println

Println 未定义,恩,从我们上面的代码中确实看得到,从来没有它,突然就这么一下子就拿来用了,不成,就像你从来没有买过车,一辈子都没见过车,怎么可能走着走着就突然在开车了呢,我们来买一辆车:

package main

import "fmt"

func main() {
    fmt.Println("Hello World! 您好!世界。")
}

再来运行 helloworld.go:

cox@Cox:~/workspace/go/src$ go run helloworld.go
Hello World! 您好!世界。

成了,这个 fmt 就是我们买来的车,有了车我们才能开车,我们这里用了 fmt 里面的 Println 函数。

你学会了吗?

  • 任何一个 Go 文件都必须被关联到某一个包上
  • 任何一个 Go 程序都必须有一个开始点,就是那个 main 函数
  • 任何一个函数或者变量都必须被定义之后才能使用

标签: none

评论已关闭