Go语言hello world实例

 更新时间:2020年5月1日 09:42  点击:2091

在开始编写应用之前,我们先从最基本的程序开始。就像你造房子之前不知道什么是地基一样,编写程序也不知道如何开始。因此,在本节中,我们要学习用最基本的语法让Go程序运行起来。

程序

这就像一个传统,在学习大部分语言之前,你先学会如何编写一个可以输出hello world的程序。

准备好了吗?Let's Go!

复制代码 代码如下:

package main

import "fmt"

func main() {
    fmt.Printf("Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちはせかい\n")
}

输出如下:

复制代码 代码如下:

Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちはせかい

详解

首先我们要了解一个概念,Go程序是通过package来组织的

package <pkgName>(在我们的例子中是package main)这一行告诉我们当前文件属于哪个包,而包名main则告诉我们它是一个可独立运行的包,它在编译后会产生可执行文件。除了main包之外,其它的包最后都会生成*.a文件(也就是包文件)并放置在$GOPATH/pkg/$GOOS_$GOARCH中(以Mac为例就是$GOPATH/pkg/darwin_amd64)。

复制代码 代码如下:

每一个可独立运行的Go程序,必定包含一个package main,在这个main包中必定包含一个入口函数main,而这个函数既没有参数,也没有返回值。

为了打印Hello, world...,我们调用了一个函数Printf,这个函数来自于fmt包,所以我们在第三行中导入了系统级别的fmt包:import "fmt"。

包的概念和Python中的package类似,它们都有一些特别的好处:模块化(能够把你的程序分成多个模块)和可重用性(每个模块都能被其它应用程序反复使用)。我们在这里只是先了解一下包的概念,后面我们将会编写自己的包。

在第五行中,我们通过关键字func定义了一个main函数,函数体被放在{}(大括号)中,就像我们平时写C、C++或Java时一样。

大家可以看到main函数是没有任何的参数的,我们接下来就学习如何编写带参数的、返回0个或多个值的函数。

第六行,我们调用了fmt包里面定义的函数Printf。大家可以看到,这个函数是通过<pkgName>.<funcName>的方式调用的,这一点和Python十分相似。

复制代码 代码如下:

前面提到过,包名和包所在的文件夹名可以是不同的,此处的<pkgName>即为通过package <pkgName>声明的包名,而非文件夹名。

最后大家可以看到我们输出的内容里面包含了很多非ASCII码字符。实际上,Go是天生支持UTF-8的,任何字符都可以直接输出,你甚至可以用UTF-8中的任何字符作为标识符。

结论

Go使用package(和Python的模块类似)来组织代码。main.main()函数(这个函数主要位于主包)是每一个独立的可运行程序的入口点。Go使用UTF-8字符串和标识符(因为UTF-8的发明者也就是Go的发明者),所以它天生就具有多语言的支持。

[!--infotagslink--]

相关文章

  • Go语言压缩和解压缩tar.gz文件的方法

    这篇文章主要介绍了Go语言压缩和解压缩tar.gz文件的方法,实例分析了使用Go语言压缩文件与解压文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
  • go语言使用RC4加密的方法

    这篇文章主要介绍了go语言使用RC4加密的方法,实例分析了RC4加密的技巧与实现方法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-07
  • Go语言图片处理和生成缩略图的方法

    这篇文章主要介绍了Go语言图片处理和生成缩略图的方法,涉及Go语言针对图片操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
  • 创建第一个Go语言程序Hello,Go!

    这篇文章主要介绍了创建第一个Go语言程序Hello,Go!本文详细的给出项目创建、代码编写的过程,同时讲解了GOPATH、Go install等内容,需要的朋友可以参考下...2020-05-01
  • Go语言创建、初始化数组的常见方式汇总

    这篇文章主要介绍了Go语言创建、初始化数组的常见方式,实例汇总了Go语言操作数组的常见技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-01
  • go语言实现文件分割的方法

    这篇文章主要介绍了go语言实现文件分割的方法,实例分析了Go语言操作文件的技巧,需要的朋友可以参考下...2020-05-05
  • Go语言通过http抓取网页的方法

    这篇文章主要介绍了Go语言通过http抓取网页的方法,实例分析了Go语言通过http操作页面的技巧,需要的朋友可以参考下...2020-05-05
  • go语言简单的处理http请求的函数实例

    这篇文章主要介绍了go语言简单的处理http请求的函数,实例分析了Go语言处理http请求的技巧,需要的朋友可以参考下...2020-05-07
  • Go语言实现socket实例

    这篇文章主要介绍了Go语言实现socket的方法,实例分析了socket客户端与服务器端的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
  • Go语言里的new函数用法分析

    这篇文章主要介绍了Go语言里的new函数用法,实例分析了new函数的功能及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
  • Go语言实现简单留言板的方法

    这篇文章主要介绍了Go语言实现简单留言板的方法,涉及数据库、模板页面元素等留言板相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
  • Go语言七篇入门教程六网络编程

    这篇文章主要为大家介绍了Go语言的网络编程,其中包含了Socket编程,Http编程以及RPC编程,本篇文章是Go语言七篇入门系列文章,有需要的朋友可以借鉴下...2021-11-10
  • Go语言扫描目录并获取相关信息的方法

    这篇文章主要介绍了Go语言扫描目录并获取相关信息的方法,实例分析了Go语言操作目录及文件的技巧,需要的朋友可以参考下...2020-05-05
  • Go语言操作mysql数据库简单例子

    这篇文章主要介绍了Go语言操作mysql数据库简单例子,本文包含插入数据和查询代码实例,需要的朋友可以参考下...2020-05-01
  • Go语言计算指定年月天数的方法

    这篇文章主要介绍了Go语言计算指定年月天数的方法,实例分析了Go语言操作时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-05
  • Go语言获取本机逻辑CPU数量的方法

    这篇文章主要介绍了Go语言获取本机逻辑CPU数量的方法,实例分析了runtime库的操作技巧,需要的朋友可以参考下...2020-05-05
  • Go语言多值替换的HTML模板实例分析

    这篇文章主要介绍了Go语言多值替换的HTML模板,实例分析了Go语言多值替换与数组迭代的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-05
  • Go语言轻量级线程Goroutine用法实例

    这篇文章主要介绍了Go语言轻量级线程Goroutine用法,实例分析了goroutine使用技巧,需要的朋友可以参考下...2020-05-03
  • go语言中if语句用法实例

    这篇文章主要介绍了go语言中if语句用法,以实例形式分析了if语句的定义及使用技巧,非常具有实用价值,需要的朋友可以参考下...2020-05-03
  • Go语言非main包编译为静态库并使用的示例代码

    本文以Windows为例,介绍一下如何将Go的非main包编译为静态库,用户又将如何使用。通过实际项目创建常规工程,通过示例代码给大家介绍的非常详细,需要的朋友参考下吧...2021-07-11