Go语言hello world实例

作者:junjie 时间:2024-04-26 17:21:32 

在开始编写应用之前,我们先从最基本的程序开始。就像你造房子之前不知道什么是地基一样,编写程序也不知道如何开始。因此,在本节中,我们要学习用最基本的语法让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的发明者),所以它天生就具有多语言的支持。

标签:Go语言,hello,world
0
投稿

猜你喜欢

  • Vue不同项目之间传递、接收参数问题

    2024-04-30 10:47:06
  • Centos 6.4 安装Python 2.7 python-pip的详细步骤

    2023-12-01 10:21:03
  • Python抓取移动App数据使用mitmweb监听请求与响应

    2022-03-24 21:09:29
  • Python3 使用selenium插件爬取苏宁商家联系电话

    2023-12-20 01:39:57
  • bootstrap选项卡使用方法解析

    2024-04-16 09:13:11
  • TensorFlow和keras中GPU使用的设置操作

    2023-08-07 20:32:53
  • 解决flask接口返回的内容中文乱码的问题

    2022-12-17 03:00:37
  • 浅谈DataFrame和SparkSql取值误区

    2021-03-21 22:04:18
  • python如何进入交互模式

    2023-08-10 19:57:12
  • 深入MYSQL字符数字转换的详解

    2024-01-18 04:20:11
  • golang 将[]byte转成16进制的实现

    2024-02-17 00:35:03
  • Django 浅谈根据配置生成SQL语句的问题

    2023-05-10 07:48:23
  • Python执行时间的几种计算方法

    2023-06-09 15:00:47
  • mysql下载与安装过程详解

    2024-01-23 23:39:30
  • Django+Bootstrap实现计算器的示例代码

    2022-08-10 02:42:01
  • 详解Mysql中的JSON系列操作函数

    2024-01-20 02:08:08
  • 解密CSS Sprites:技巧、工具和教程

    2011-01-11 19:38:00
  • Windows上配置Emacs来开发Python及用Python扩展Emacs

    2022-07-20 01:55:47
  • VS2019+python3.7+opencv4.1+tensorflow1.13配置详解

    2023-06-19 04:56:38
  • ASP生成静态网页各种方法收集整理

    2008-02-18 19:25:00
  • asp之家 网络编程 m.aspxhome.com