Hello World
package main
import {
"fmt"
}
func main(){
fmt.Println("hello world")
}
第一行 package main 代表这个文件属于 main包的一部分,main包是程序的入口包。
2. 第三行导入了标准库中的 fmt 包。这个包主要用于在屏幕上输入输出字符串、格式化字符串。
3. import 下面是 main 函数,main函数中调用了 fmt.Println 输出 "Hello, World!"。
要运行这个程序,可以直接使用 go run helloworld.go。如果想编译成二进制文件,可以使用 go build 来编译。编译完成后,直接运行 ./helloworld 即可。
变量
Go 语言是一门强类型语言,每一个变量都有它自己的变量类型。常见的变量类型包括字符串、整数、浮点型、布尔型等。
package main
import (
"fmt"
"math"
)
func main() {
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
f := float32(e) // 使用短变量声明方式声明浮点型变量 f,并将 e 转换为 float32 类型
g := a + "foo" // 字符串拼接,g 的值为 "initialfoo"
fmt.Println(a, b, c, d, e, f) // 输出变量的值:initial 1 2 true 0 0
fmt.Println(g) // 输出 g 的值:initialfoo
const s string = "constant" // 声明字符串常量 s,值为 "constant"
const h = 500000000 // 声明整数常量 h,值为 500000000
const i = 3e20 / h // 声明浮点型常量 i,值为 3e20 / h
fmt.Println(s, h, i, math.Sin(h), math.Sin(i)) // 输出常量的值及其计算结果
}
变量声明
在 Go 语言中,变量的声明有两种方式:
-
使用
var关键字:var name string = "example"在声明变量时,Go 语言会自动推导变量的类型。如果需要,也可以显式指定变量类型。
-
使用短变量声明方式:
name := "example"这种方式使用变量名、冒号
:=和值来声明变量,类型由编译器自动推导。
常量声明
常量的声明使用 const 关键字:
const pi = 3.14
值得一提的是,Go 语言中的常量没有确定的类型,会根据使用的上下文来自动确定类型。
通过这个例子,我们可以看到 Go 语言中变量和常量的声明方式,以及不同类型变量的使用方法。字符串可以直接通过加号拼接,也可以用等于号比较。大部分运算符的使用和优先级与 C 或 C++ 类似。
控制循环结构
package main
import "fmt"
func main() {
i := 1 // 使用短变量声明方式声明整数变量 i,并初始化为 1
// 无限循环,直到遇到 break 语句
for {
fmt.Println("loop")
break // 退出循环
}
// 传统的 for 循环,类似于 C 或 C++
for j := 7; j < 9; j++ {
fmt.Println(j) // 输出 7 和 8
}
// 使用 continue 跳过循环中的某些迭代
for n := 0; n < 5; n++ {
if n%2 == 0 {
continue // 跳过当前迭代
}
fmt.Println(n) // 输出 1, 3
}
// 类似于 while 循环
for i <= 3 {
fmt.Println(i) // 输出 1, 2, 3
i = i + 1
}
}
控制结构
Go 语言中的 if-else 语句与 C 或 C++ 类似,但有以下不同点:
if后面没有括号。如果你写括号,编辑器会自动去掉。if语句后面必须接大括号,不能像 C 或 C++ 一样直接把if里面的语句写在同一行。
例如:
if condition {
// 代码块
} else {
// 代码块
}
循环结构
Go 语言中的 for 循环有多种形式:
- 无限循环:
for {
// 代码块
break // 退出循环
}
- 传统的
for循环:
for i := 0; i < 10; i++ {
// 代码块
}
- 类似于
while循环:
for i <= 10 {
// 代码块
i++
}