-
占位符:
- %v 相应值的默认格式。在打印结构体时,“加号”标记(%+v)会添加字段名
- %#v 相应值的Go语法表示
- %T 相应值的类型的Go语法表示
- %% 字面上的百分号,并非值的占位符
- %t 布尔类型。
- %b 二进制表示
- %c 相应Unicode码所表示的字符
- %d 十进制表示
- %o 八进制表示
- %q 单引号围绕的字符字面值,由Go语法安全地转义
- %x 十六进制表示,字母形式为小写 a-f
- %X 十六进制表示,字母形式为大写 A-F
- %U Unicode格式:U+1234,等同于 “U+%04X”
- %b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat的 ‘b’ 转换格式一致。例如 -123456p-78
- %e 科学计数法,例如 -1234.456e+78
- %E 科学计数法,例如 -1234.456E+78
- %f 有小数点而无指数,例如 123.456
- %g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出
- %G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
- %s 字符串或切片的无解译字节
- %q 双引号围绕的字符串,由Go语法安全地转义
- %x 十六进制,小写字母,每字节两个字符
- %X 十六进制,大写字母,每字节两个字符
- %p 十六进制表示,前缀 0x
-
变量定义方法:
var b1 bool = true var b2 = false b3 := true
-
const:定义常量,定义后不可改变。
-
iota:系统可编辑常量,可实现自增。
const ( a1 = iota a2 = iota _ //跳过 a3 = iota )
\\ 打印结果 a1: 0 a2: 1 a3: 3
-
定义数组:
m := [2]int{1, 2} //固定数组长度 m1 := []int{1, 2, 3}//可变数组长度
-
数字类型:
- uint:无符号整型
- int:有符号整型
- uintptr:指针类型
- float32:32位浮点型
- float64:64位浮点型
-
快捷输入:
ff --> fmt.Printf("", var) fp --> fmt.Println("") a.print! --> fmt.Printf("a: %v\n", a) tys --> 定义结构体 type name struct {} forr --> for _, v := range v pkgm --> package main func main() {}
-
定义多行字符串:
s := ` line1 line2 line3 `
-
printf 和 println 的区别: 当需要格式化输出信息时,一般选择Printf,其余使用Println
-
使用goto跳出多层循环:
func main() { for i := 0; i < 10; i++ { for j := 0; j < 10; j++ { if i == 6 && j == 6 { goto END } fmt.Printf("i: %v j: %v\n", i, j) } } END: fmt.Printf("end...") }
-
切片(slice): 可变长度的数组
//切片初始化方法一:(无初始值) var slice []int //切片初始化方法二:(有初始值) var slice = make([]int, 2)
-
切片删除元素:
var slice2 = []int{1, 2, 3, 4, 5, 6, 7, 8} slice2 = append(slice2[:3], slice2[4:]...)
-
函数内部只能嵌套匿名函数
-
Golang的初始化顺序: 变量初始化 ----> init() ----> main()
-
指针:
- 取地址:&
- 根据地址取值:*
- 指针定义格式:var var_name *var-type
-
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )
-
:= 用于声明变量
-
x<<n == x * (2^n)
Go语言基础知识
最新推荐文章于 2024-07-22 22:54:57 发布