hello , world
package main
import (
"fmt"
)
func main{
fmt.Println("hello, world")
}
go语言的结构:
- 包, import, 函数
- 包的概念与 Java 中相同
- import 的作用相当于 C 中的 include
- 函数的概念与其他语言中相同
大括号的要求
- go 程序对大括号位置有强制要求, 必须在同一行写左括号(需要写大括号的时候)
若是将上面的 hello world 程序写成下面这种样子, 将会报错, 注意 main 函数的大括号位置
package main
import (
"fmt"
)
func main
{
fmt.Println("hello, world")
}
虽然 go 语言每一句的末尾是不需要写分号的, 但实际上编译器在进行编译前会给每一句加上分号, 如果大括号不按照格式要求写的话, 会导致编译器无法识别从而报语法错误
变量声明
package main
import (
"fmt"
)
func main
{
const // 声明常量
var // 声明变量
变量名 := 表达式 // 声明作用域更小的局部变量
}
- 当作为函数局部变量时, var 与 := 声明的效果相同
- 若需要声明为循环变量则效果不同, var 声明可存活到函数结束, := 声明方式则只能存活到循环结束
判断与循环
if, else if, else
package main
import (
"fmt"
)
func main{
if 1 >= 2 {
fmt.Println("a")
} else if 1 >= 3 {
fmt.Println("b")
} else {
fmt.Println("c")
}
}
- 判断条件类似 Python 中的形式, 不需要括号, C 语言中强制要求括号
- 若条件众多, 可以用括号括起来防止逻辑混乱
go 中只有 for 循环
有范围的条件限制可以这么做
package main
import (
"fmt"
)
func main{
for i := 1; i < 10; i++ {
// 上行中的效果相当于 C 语言中的 for (int i = 1; i < 10; i++)
// 这是循环体
}
}
如果在 for 旁边不写循环条件, 则会变成死循环, 如下图
package main
import (
"fmt"
)
func main{
// 这是死循环
for {
// 这是循环体
}
}
实现 while 循环
- 在死循环的循环体内添加跳出循环的条件即可
- 跳出的语句还是使用 break
go 中的 break 和 continue 语句作用以及用法与其他语言相同
switch 语句
与 C 语言十分相似
package main
import (
"fmt"
)
func main{
switch 表达式{
case : {
}
case : {
}
}
}
函数声明
package main
import (
"fmt"
)
func 函数名(形参名1 形参类型1, 形参名2, 形参类型2) 函数返回值类型{
// 函数体
return
}
func main{
}
- 若有多个形参, 则按照上面的格式以此类推
- go 语言允许函数返回值有多个
- 函数返回值若是有多个则需要将返回值类型写成括号括起的形式
import
- 参考 Python 中的 import 形式即可
- 库名需要用双引号引起
- 若只有 import 一个库则可不使用小括号
- import 库包含多个时, 需要用小括号括起
静态类型语言
- go 语言属于静态类型语言
- 每个变量被声明之后类型不可更改, 内容可以更改
- C, Java 属于动态类型语言
- 静态类型的特点可以帮助编译器更快地执行编译工作, 提高效率
保留特定小数位数输出
- fmt.Printf() 用这个
- 使用方式参考 C 语言中的 printf 用法, 大部分相同, 格式化标志符有部分不一样, 查询参考手册即可
big包
- 用于解决高精度计算
- 底层原理还是基于字符串进行大数运算, 参考高精度算法