在前一篇文章中,我们介绍了 Go 语言的基本概念以及如何编写一个简单的 "Hello, World!" 程序。现在,我们将通过一个稍微复杂一点的例子来进一步探讨 Go 语言的一些基础语法和常用特性。这个例子将展示变量声明、类型推断、常量定义以及如何使用标准库中的数学函数。
示例代码
以下是示例代码,我们将逐行解析其功能和背后的语法特点:
package main
import (
"fmt"
"math"
)
func main() {
var a = "initial"
var b, c int = 1, 2
var d = true
var e float64
f := float32(e)
g := a + "foo"
fmt.Println(a, b, c, d, e, f) // 输出: initial 1 2 true 0 0
fmt.Println(g) // 输出: initialfoo
const s string = "constant"
const h = 500000000
const i = 3e20 / h
fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
}
代码解析
变量声明与初始化
var a = "initial":声明并初始化一个字符串类型的变量a,值为"initial"。var b, c int = 1, 2:同时声明并初始化两个整数类型的变量b和c,分别赋值为1和2。var d = true:声明并初始化一个布尔类型的变量d,值为true。var e float64:声明一个浮点数类型的变量e,但没有初始化,因此默认值为0.0。f := float32(e):使用短变量声明语法声明并初始化一个float32类型的变量f,其值为e转换后的结果,即0.0。
字符串操作
g := a + "foo":将字符串a和"foo"相连接,形成新的字符串"initialfoo",并将其赋值给变量g。
标准输出
fmt.Println(a, b, c, d, e, f):输出变量a,b,c,d,e,f的值。fmt.Println(g):输出变量g的值,即"initialfoo"。
常量定义
const s string = "constant":定义一个字符串类型的常量s,值为"constant"。const h = 500000000:定义一个未指定类型的常量h,值为500000000。Go 语言会根据值自动推断类型,这里h的类型为int。const i = 3e20 / h:定义一个常量i,计算表达式3e20 / h的结果。由于h是int类型,因此i也是float64类型。
数学运算
fmt.Println(s, h, i, math.Sin(h), math.Sin(i)):输出常量s,h,i以及它们的正弦值。这里使用了math包中的Sin函数来计算正弦值。
运行程序
我们同样通过Ai练中学功能来展示结果:
initial 1 2 true 0 0
initialfoo
constant 500000000 6e+11 -0.9983341664682815 -0.9999999999999999