基础
包
- 程序从
main
包开始运行 - 按照约定,包名与导入路径的最后一个元素一致。例如,"math/rand" 包中的源码均以 package rand 语句开始。
- 包导入方式
1:
import "fmt"
import "math"
2:
import (
"fmt"
"math"
)
导出名
- 在 Go 中,如果一个名字以大写字母开头,那么它就是已导出的。例如,Pizza 就是个已导出名,Pi 也同样,它导出自 math 包。
- 在导入一个包时,你只能引用其中已导出的名字。任何“未导出”的名字在该包外均无法访问。
函数
- 函数声明:
func add(x int, y int) int {
return x + y
}
- 当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。
func add(x, y int) int {
return x + y
}
- 函数可以返回任意数量的返回值
func swap(x, y int) (int, int){
tmp := x
x = y
y = tmp
return y, x
}
- Go 的返回值可被命名,它们会被视作定义在函数顶部的变量。
- 没有参数的 return 语句返回已命名的返回值。也就是 直接 返回。
func swap(x, y int) (a, b int){
a = x
b = y
return
}
变量
- 变量声明(
var
声明变量可以在包级别或者函数级别)
var i int // 声明i为int类型
var a, b, c int //连续声明变量
var (
a int
b bool
c string
)
- 变量初始化
1:
var a, b int = 1, 2
2:
var a, b int
a ,b = 1, 2
- 短变量声明
// 短变量声明不能在函数外使用
a := 1 // 声明变量a并且赋值1
- 零值
- 当变量被声明但没有被赋值时,会有默认值,成为零值
数值类型为 0,
布尔类型为 false,
字符串为 ""(空字符串)。
基本类型
- Go 的基本类型有
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 的别名
rune // int32 的别名
// 表示一个 Unicode 码点
float32 float64
complex64 complex128
本例展示了几种类型的变量。 同导入语句一样,变量声明也可以“分组”成一个语法块。
int, uint 和 uintptr 在 32 位系统上通常为 32 位宽,在 64 位系统上则为 64 位宽。 当你需要一个整数值时应使用 int 类型,除非你有特殊的理由使用固定大小或无符号的整数类型。
-
类型转换
import "strconv"
- int转换为字符串:Itoa()
// Itoa(): int -> string fmt.Println("a" + strconv.Itoa(32)) // a32
- string转换为int:Atoi()
x, err := strconv.Atoi("1") if err != nil { fmt.Println("转换失败") return } fmt.Println(x)
- int 转 float64
x := float64(1) fmt.Println(x)
- float64 转 int
y := 1.9 x := int(y) fmt.Println(x)
- Parse类函数用于转换字符串为给定类型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。
b, err := strconv.ParseBool("true") f, err := strconv.ParseFloat("3.1415", 64) i, err := strconv.ParseInt("-42", 10, 64) u, err := strconv.ParseUint("42", 10, 64)
- 将给定类型格式化为string类型:FormatBool()、FormatFloat()、FormatInt()、FormatUint()。
s := strconv.FormatBool(true) s := strconv.FormatFloat(3.1415, 'E', -1, 64) s := strconv.FormatInt(-42, 16) s := strconv.FormatUint(42, 16)
-
常量
// 常量可以是字符、字符串、布尔值或数值。
const Pi = 3.14
const (
Pi = 3.14
A = 1
B = "hello"
C = true
)