美文网首页
编写 Hello World

编写 Hello World

作者: weifansym | 来源:发表于2019-02-17 23:27 被阅读0次

    编写 Hello World

    创建文件 hello.go,不写入任何内容。按照如下的命令尝试进行编译

    $ go run hello.go 
    

    将会打印出如下错误:

    package main: 
    hello.go:1:1: expected 'package', found 'EOF'
    

    在Go语言中,所有文件必须隶属于某一个包。当前,只需要理解在文件的头部声明一个package name就可以了,其中package为关键字,name为你自己起的一个包名字。
    在大型的程序中,包可以很好的有条理的组织各种功能。
    例如,如果你想写一个关于交通工具的虚拟模型,你应该把所有属于car的模型放入一个叫做cars的包中,把所有属于bus的模型放入buses的包中。
    组织相关的功能只是包的一种用途。
    现在让我们在刚刚创建的hello.go文件中添加一条语句,之后重新执行运行命令
    内容:

    package main
    

    执行后,会打印如下错误:

    runtime.main_main·f: relocation target main.main not defined
    runtime.main_main·f: undefined: "main.main"
    

    Go程序启动时,需要在文件中有一个可标识入口。就像汽车必须有一把启动点火的钥匙、电脑需要有一个开机键,Go程序中需要有一个main函数。
    在hello.go文件中添加另外一行,并且重试
    内容:

    package main
    func main(){}
    

    执行命令go run hello.go
    程序正确执行,但是由于我们没有做任何其它操作,程序很快就退出了。
    到目前为止,我们已经创建了自己的第一个程序。虽然没啥功能,但是已经可以正常运行了。
    让我们继续添加一行
    内容:

    package main
    func main(){
        Println("hello world")
    }
    

    运行,将会打印如下错误

    ./hello.go:4:2: undefined: Println
    

    Println是向屏幕输入内容。执行命令之后,编译器报未定义。
    为什么呢?
    这里我们就需要用到包了。像Println这样的函数存放在某些包中。然而,当前这些包由于我们没有主动引入,但不能使用。如果我们需要使用这些包中的功能,首先需要import它们。
    函数Println和其它读写文本和字符的函数,都存放在一个叫做fmt的包中——formatting的缩写。
    我们再添加几行代码:

    package main
    
    import "fmt"
    
    func main(){
        fmt.Println("hello world")
    }
    

    运行程序go run hello.go ,输出如下:

    hello world
    

    我们只是在package下面添加了一个import语句,第一个Go程序已经正常运行了。import之后,Println可以通过 包名.的方式进行调用。

    相关文章

      网友评论

          本文标题:编写 Hello World

          本文链接:https://www.haomeiwen.com/subject/tgzneqtx.html