首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
搭建开发环境
一个简单的Go程序
编写一个Go程序
运行一个Go程序
环境变量说明
在IDE中运行Go语言程序
创建项目
创建Go程序文件
运行.go文件
Go语言如何实现跨平台
跨平台的准备工作
执行跨平台编译
探寻Go语言程序的编译执行过程
gobuild命令的选项
查看编译的详细过程
链接环节
编程范例——启动参数的使用
程序启动的入口函数
获取启动参数
变量与常量
变量
变量声明
变量赋值
同时进行变量声明和赋值
多重赋值与“:=”操作符
没有多余的局部变量
全局变量
全局变量与链接
常量
常量的声明
常量块的使用
常量可以声明而不使用
iota与枚举
iota实现自增
iota计数不会中断
iota的使用场景
编程范例——iota的使用技巧
简单数据类型
整型
声明整型变量
int和uint的设计初衷
浮点型
声明浮点型变量
浮点型会产生精度损失
Go语言中没有float关键字的原因
浮点型与类型推导
浮点型的比较
布尔类型
字符型
声明字符型变量
字符串类型
声明字符串变量
字符串在磁盘中的存储
字符串在内存中的存储
利用rune类型处理文本
rune类型与字符集的关系
数组类型
声明数组变量
利用索引来访问数组元素
数组大小不可变更
当前位置:
首页>>
技术小册>>
深入浅出Go语言核心编程(一)
小册名称:深入浅出Go语言核心编程(一)
### 编写一个Go程序 在《深入浅出Go语言核心编程(一)》的这本书中,我们深入探索了Go语言的核心特性与编程实践。本章“编写一个Go程序”旨在通过实际动手编写一个简单的Go程序,帮助读者理解Go语言的基本结构、编译流程以及常见的编程范式。以下将详细指导你如何从一个空白的文本文件开始,逐步构建一个能够运行并产生预期输出的Go程序。 #### 1. Go环境搭建 在开始编写Go程序之前,确保你的开发环境中已经安装了Go语言。Go的官方网站(https://golang.org/)提供了详细的安装指南,支持多种操作系统,包括Windows、Linux和macOS。 安装完成后,可以通过在命令行或终端中运行`go version`命令来验证Go是否已成功安装。如果看到类似`go version go1.XX darwin/amd64`(其中`XX`是版本号,`darwin/amd64`是系统信息)的输出,说明Go环境已就绪。 #### 2. 创建你的第一个Go程序 ##### 2.1 创建工作目录 首先,在你的文件系统中选择一个合适的位置作为你的工作目录。例如,在Windows上,你可以在`C:\Users\YourName\GoProjects`下创建一个新文件夹;在Linux或macOS上,则可能是`/home/yourname/goProjects`。 ##### 2.2 编写Go代码 在你的工作目录下,创建一个名为`hello.go`的新文件,并使用文本编辑器打开它。然后,输入以下Go代码: ```go package main import "fmt" func main() { fmt.Println("Hello, World!") } ``` 这段代码非常简洁,但包含了Go程序的基本结构: - `package main` 声明了该文件所属的包,对于可执行程序来说,包名必须是`main`。 - `import "fmt"` 引入了Go标准库中的`fmt`包,该包提供了格式化I/O的函数,包括`Println`,用于向标准输出打印文本并换行。 - `func main()` 定义了程序的入口点,即程序开始执行的地方。在Go中,`main`函数不接受任何参数也不返回任何值。 - 在`main`函数体内,调用了`fmt.Println`函数,打印出"Hello, World!"字符串。 #### 3. 编译Go程序 保存`hello.go`文件后,回到命令行或终端。切换到包含`hello.go`文件的目录,然后运行`go build`命令来编译你的程序。默认情况下,`go build`会编译当前目录下的所有Go文件,并生成一个可执行文件(在Windows上是`.exe`文件,在Linux和macOS上是没有扩展名的文件),文件名默认为当前目录名(如果当前目录名为`goProjects`,则生成的可执行文件名为`goProjects`或`goProjects.exe`)。 为了生成一个具有特定名称的可执行文件,你可以使用`-o`选项指定输出文件名,如`go build -o hello hello.go`将生成名为`hello`(或`hello.exe`)的可执行文件。 #### 4. 运行Go程序 编译完成后,你可以通过在命令行或终端中直接输入可执行文件的名称(如果它不在你的PATH环境变量中,则需要指定完整路径)来运行你的程序。例如,如果你没有使用`-o`选项或指定了`hello`作为输出文件名,并且当前目录在你的PATH中,只需输入`./hello`(Linux/macOS)或`hello`(Windows,如果文件扩展名已隐藏)并按回车键即可。 你应该会在命令行或终端中看到输出`Hello, World!`。 #### 5. 深入了解Go程序 虽然上面的程序非常简单,但它已经展示了Go程序的基本框架。接下来,我们可以进一步探索Go语言的特性,如变量声明、条件语句、循环、函数定义与调用、结构体与接口等。 ##### 5.1 变量声明 Go支持多种变量声明方式,包括显式声明类型和使用`:=`自动推断类型(短变量声明,仅能在函数内部使用)。 ```go var a int = 10 b := 20 // 自动推断为int类型 ``` ##### 5.2 条件语句 Go使用`if`语句进行条件判断,支持`else`和`else if`。 ```go if a > 10 { fmt.Println("a is greater than 10") } else if a == 10 { fmt.Println("a is equal to 10") } else { fmt.Println("a is less than 10") } ``` ##### 5.3 循环 Go支持`for`循环,同时也可以使用`range`关键字遍历数组、切片、映射或字符串。 ```go for i := 0; i < 5; i++ { fmt.Println(i) } // 使用range遍历切片 nums := []int{1, 2, 3, 4, 5} for index, value := range nums { fmt.Printf("Index: %d, Value: %d\n", index, value) } ``` ##### 5.4 函数 Go中的函数非常灵活,支持多返回值和命名返回值。 ```go func add(a, b int) int { return a + b } func calculate(x, y int) (sum, diff int) { sum = x + y diff = x - y return // 使用命名返回值时,可以省略return后的变量名 } ``` ##### 5.5 结构体与接口 结构体是Go语言中复合数据类型的基础,允许你将多个不同类型的项组合成一个单一的类型。接口则是一种类型系统抽象,它定义了一组方法,但不实现它们。 ```go type Person struct { Name string Age int } type Greeter interface { Greet() } func (p Person) Greet() { fmt.Printf("Hello, my name is %s and I am %d years old.\n", p.Name, p.Age) } ``` #### 6. 总结 通过编写一个简单的“Hello, World!”程序,我们已经踏入了Go语言编程的大门。随着对Go语言特性的深入了解,你将能够构建更复杂、更强大的应用程序。记住,实践是学习编程的最佳途径,不断编写代码并尝试新的概念,你的编程技能将会迅速提升。 在《深入浅出Go语言核心编程(一)》的后续章节中,我们将继续深入探讨Go语言的更多高级特性和设计模式,帮助你成为一名优秀的Go语言开发者。
上一篇:
一个简单的Go程序
下一篇:
运行一个Go程序
该分类下的相关小册推荐:
深入浅出Go语言核心编程(三)
go编程权威指南(四)
go编程权威指南(一)
深入浅出Go语言核心编程(八)
Go Web编程(上)
深入解析go语言
GO面试指南
Go语言入门实战经典
深入浅出Go语言核心编程(二)
从零写一个基于go语言的Web框架
Go Web编程(中)
深入浅出Go语言核心编程(四)