一起学Golang系列(三)第一个Go语言程序 helloworld

简介: 前面我们介绍了Golang的环境搭建,如何安装、配置Golang环境、配置Go工作目录:GOPATH。通过前面学习想必大家已经对Golang有了一定的了解,那要怎么来创建一个Go语言程序呢?下面就来带领大家实现一个简单的程序:helloworld。

前面我们介绍了Golang的环境搭建,如何安装、配置Golang环境、配置Go工作目录:GOPATH。

通过前面学习想必大家已经对Golang有了一定的了解,那要怎么来创建一个Go语言程序呢?下面就来领大家实现一个简单的程序:helloworld。


一、创建第一个GO程序

下面创建我们第一个Go程序,helloworld。其实非常简单,仅需要几行代码就可以搞定,如下所示:

package main 
import (
    "fmt"
)
func main() {
    fmt.Println("Hello World!") 
}

将上面的程序保存成 helloworld.go,然后在命令行中执行:go run helloworld.go

image.png

我们看到程序成功输出:Hello World!,说明我们的第一个Golang程序运行成功。


二、GO程序的基本结构

上面,我们成功创建并运行了一个helloworld.go 。虽然程序运行了,但是,想必大家也许不明白这些代码的含义,没关系,下面就来一一介绍:

1. package(声明main包)

Go语言以“包”作为管理单位,每个 Go 源文件必须先声明它所属的包,所以我们会看到每个 Go 源文件的开头都是一个 package 声明,格式如下:package mian

其中 package 是声明包名的关键字,main 为具体包的名字。


Go语言的包与文件夹是一一对应的,它具有以下几点特性:

  • 一个目录下的同级文件属于同一个包。
  • 包名可以与其目录名不同。
  • main 包是Go语言程序的入口包,一个Go语言程序必须有且仅有一个 main 包。如果一个程序没有 main 包,那么编译时将会出错,无法生成可执行文件。


2. import(导入包)

在包声明之后,是 import 语句,用于导入程序中所依赖的包,导入的包名使用双引号""包围,格式如下:

import "fmt"

其中 import 是导入包的关键字,fmt为所导入包的名字,是Go提供的标准库。

需要注意的是,导入的包中不能含有代码中没有使用到的包,否则Go编译器会报编译错误,例如 imported and not used: "xxx","xxx" 表示包名。


3. main 函数

通过func main() 创建了一个 main 函数,它是Go语言程序的入口函数,也即程序启动后运行的第一个函数。main 函数只能声明在 main 包中,不能声明在其他包中,并且,一个 main 包中也必须有且仅有一个 main 函数。这个跟C或是C++类似。

main 函数是自定义函数的一种,在Go语言中,所有函数都以关键字 func 开头的,定义格式如下所示:

func 函数名 (参数列表) (返回值列表){
}

格式说明如下:

  • 函数名:由字母、数字、下画线_组成,其中,函数名的第一个字母不能为数字,并且,在同一个包内,函数名称不能重名。
  • 参数列表:一个参数由参数变量和参数类型组成,例如func foo( a int, b string )
  • 返回值列表:可以是返回值类型列表,也可以是参数列表那样变量名与类型的组合,函数有返回值时,必须在函数体中使用 return 语句返回。

注意:Go语言函数的左大括号{必须和函数名称在同一行,否则会报错。


4.  fmt.Println("Hello World!")

调用fmt包中的Println函数格式化输出相关的内容。比如字符串、整数、小数等,与C语言中printf 函数类似。


另外,我们看到Go语言不需要使用;来作为结束符,Go 编译器会自动帮我们添加,当然,在这里加上;也是可以的。


三、编译&运行

上面的helloworld示例程序编写完之后,接下来我们运行helloworld.go,验证是否执行成功。在命令行中执行:go run helloworld.go 编译运行该程序,输出结果如下:

image.png


Golang还提供了go test、go run、go build 、命令主要是用于测试、编译、运行、打包程序。在包的编译过程中,若有必要,会同时编译与之相关联的包。

  • go build 命令主要用于打包项目
  • go run 命令主要用于编译并运行Go程序。例如:go run helloworld.go   
  • go test 命令会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。


最后

以上,我们第一个Go语言程序:helloworld 创建并运行成功了,相信大家已经知道如何创建一个简单的Go语言程序了,赶快动手试试吧!



相关文章
|
13天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
25 7
|
13天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
13天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
90 71
|
12天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
98 67
|
13天前
|
存储 Go
go语言中映射
go语言中映射
31 11
|
14天前
|
Go 索引
go语言修改元素
go语言修改元素
25 6
|
5天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
3月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
131 4
Golang语言之管道channel快速入门篇
|
3月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
71 4
Golang语言文件操作快速入门篇
|
3月前
|
Go
Golang语言之gRPC程序设计示例
这篇文章是关于Golang语言使用gRPC进行程序设计的详细教程,涵盖了RPC协议的介绍、gRPC环境的搭建、Protocol Buffers的使用、gRPC服务的编写和通信示例。
111 3
Golang语言之gRPC程序设计示例