前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang语言教程之hello,world

Golang语言教程之hello,world

作者头像
frank.
发布2019-11-26 18:14:50
9030
发布2019-11-26 18:14:50
举报

学习新语言通常从hello,world开始,本文通过hello,world示例代码来介绍一下Golang 语言的基础知识。

代码语言:javascript
复制
package main

import "fmt"
func main () {
   fmt.Println("Hello,世界")
}

基础介绍

Go 不同于PHP,它是编译型的语言,Go的工具链将程序的源文件转变成机器相关的原生二进制指令。 这些工具可以通过单一的go 命令配合其子命令进行使用。 今天主要讲两个子命令: 最简单的子命令是run ,它将一个或多个以.go 为后缀的源文件进行编译、链接, 然后运行生成的可执行文件。

代码语言:javascript
复制
go run helloworld.go

// 输出:

代码语言:javascript
复制
Hello,世界

Go 原生地支持Unicode ,所以它可以处理所有国家的语言。 另外一个子命令是build 它可以编译输出成一个可复用的二进制程序

代码语言:javascript
复制
go build helloworld.go

这条命令生成了一个叫做helloworld 的二进制程序 它可以不用进行任何其他处理,随时执行:

代码语言:javascript
复制
./helloworld

// 输出:

代码语言:javascript
复制
Hello,世界

代码讲解

Go 代码是使用包来组织的,包类似于PHP语言中的模块 一个包由一个或多个.go 源文件组成,放在一个文件夹中,通常该文件夹的名字描述了包的作用 package 包声明 每一个源文件的开头都以package 声明,指明这个文件属于哪个包 import 导入声明 后面跟着它导入的其它包的列表,以import 声明 例子里面只导入了一个fmt 包,如果导入多个包,有两种方式: 方式1:

代码语言:javascript
复制
import "fmt"
import "os"

方式2:

代码语言:javascript
复制
import (
   "fmt"
   "os"
)

Go 的标准库中有100多个包,每个包中又有许多完成编写程序时的一些常规任务的函数 特殊的包 - main包 main包比较特殊,它用来定义一个独立的可执行程序,而不是库 main包中的main函数也是特殊的,它总是程序开始执行的地方,通常main函数会调用其它包中的函数来做更多的事情 必须精确导入程序需要的包,在缺失导入或者存在不需要的包时,编译会失败,这种严格的要求可以防止程序中引用不需要的包 程序声明 然后是一些程序声明(函数、变量、常量、类型),通常以func、var、const、type 开头 一般情况下,声明的顺序是随意的 示例中在import 导入声明后面,只声明了一个函数,这个函数只调用了一个其他函数 一个函数的声明由func 关键字、函数名、参数列表(main 函数为空)、返回值列表(可以为空)、函数体(放在大括号内)组成 Go 和PHP 还有一个不同的地方是,Go 代码不需要在语句后面使用分号结尾,除非有多个语句写在同一行,实际上跟在特定符号后面的换行符被转换为分号了,所以 在什么地方换行会影响Go 代码的解析

代码格式化

Go 对于代码的格式化要求非常严格。这里又要讲一个go 命令的子命令fmt 它可以格式化指定包里的所有文件或者当前文件夹中的文件 许多编辑器可以配置为每次保存文件时自动运行go fmt 此外推荐一个可以按需管理导入声明的插入和移除的工具 goimports 它不是标准发布的一部分,可以通过执行下面命令获取到: go get golang.org/x/tools/cmd/goimports

总结

本文通过helloworld 示例程序,介绍了Go 程序如何运行、Go 程序的组成和一些Go 命令介绍,其中需要特别强调的是Go 代码中package 包声明,import 导入 声明、程序声明的顺序必须按照示例代码中排列,不可随意排列。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 cnSwift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础介绍
  • 代码讲解
  • 代码格式化
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档