1、iota 关键字
(1)iota 每一行加1
(2)iota 遇到const关键字 重置为0
(3)iota 每一行的值相等(有点类似于行号)
package main
import "fmt"
func main() {
// iota 每一行加1
const (
a1 = iota
a2 = iota
a3 = iota
a4 = iota
)
fmt.Printf("a1 = %d, a2 = %d, a3 = %d, a4 = %d \n", a1, a2, a3, a4)
// iota 遇到const关键字 重置为0
const b = iota
fmt.Printf("b = %d \n", b)
// iota 简写
const (
c1 = iota
c2
c3
c4
)
fmt.Printf("c1 = %d, c2 = %d, c3 = %d, c4 = %d \n", c1, c2, c3, c4)
// iota 每一行值相等
const (
d1 = iota
d2, d3, d4 = iota, iota, iota
)
fmt.Printf("d1 = %d, d2 = %d, d3 = %d, d4 = %d \n", d1, d2, d3, d4)
}
2、类型
类型 | 名称 | 长度 | 初始值 | 备注 |
---|---|---|---|---|
bool | 布尔类型 | 1 | false | |
byte | 字节类型 | 1 | 0 | uint8别名 |
rune | 字符类型 | 4 | 0 | 专用于存储unicode编码,等价于uint32 |
int,uint | 整形 | 4或8 | 0 | 32位系统4字节 64位系统8字节 |
int8,uint8 | 整形 | 1 | 稳定性0 | int8:-128 ~ 127 uint8:0 ~ 255 |
int16,uint16 | 整形 | 2 | 0 | int16:-32768 ~ 32767 uint16:0 ~ 65535 |
int32,uint32 | 整形 | 4 | 0 | |
int64,uint64 | 整形 | 8 | 0 | |
float32 | 浮点型 | 4 | 0.0 | 小数位精确到7位 |
float64 | 浮点型 | 8 | 0.0 | 小数位精确到15位 |
complex64 | 复数类型 | 8 | ||
complex128 | 复数类型 | 16 | ||
uintptr | 整形 | 4或8 | 足够容纳指针位数大小的整数类型 | |
string | 字符串 | "" | utf-8字符串 |
3、fmt格式化
格式 | 备注 | 举例 | 输出 |
---|---|---|---|
%% | 输出% | fmt.Printf("%%") | % |
%b | 2进制整数数值表示的数字(基数为2) 或用科学记数法表示的指数为2的浮点数 |
fmt.Printf("%b", 5) | 101 |
%c | 字符型,将数字按照ASCII码转换为对应的字符 | fmt.Printf("%c", 97) | a |
%d | 十进制整数数值 | fmt.Printf("%d", 11) | 11 |
%e | 科学记数法e表示的浮点数或复数 | fmt.Printf("%e", 10.1) | 1.010000e+01 |
%E | 科学记数法E表示的浮点数或复数 | fmt.Printf("%E", 10.1) | 1.010000E+01 |
%f | 标准计数法表示的浮点数或复数 | fmt.Printf("%f", 10.1) | 10.100000 |
%g | %e或%f表示的浮点数或复数,以最紧凑的方式输出 | fmt.Printf("%g", 10.1) | 10.1 |
%G | %E或%f表示的浮点数或复数,以最紧凑的方式输出 | fmt.Printf("%G", 10.1) | 10.1 |
%o | 8进制表示的数字(基数为8) | fmt.Printf("%o", 10) | 12 |
%p | 16进制表示的一个值得地址,前缀0x,字母使用小写的a-f表示 | var a = 11 fmt.Printf("%p", &a) |
0xc0000a6058 |
%q | go语法安全的转义 | fmt.Printf("%q", 0x56FD) | 国 |
%s | 字符串 | fmt.Printf("%s", "123") | 123 |
%t | 以true或false输出布尔值 | fmt.Printf("%t", true) | true |
%T | 输出值的类型 | fmt.Printf("%T", 10.1) | float64 |
%U | 用Unicode表示法表示的字符 | fmt.Printf("%U", '国') | U+56FD |
%v | 使用默认格式输出内置的或自定义的值,或者String()输出的自定义值 | fmt.Printf("%v %v", 10, 10.1) | 10 10.1 |
%x | 16进制,小写字母a-f | fmt.Printf("%x", 10) | a |
%X | 16进制,大写字母A-F | fmt.Printf("%X", 10) | A |
4、输入
输入必须加 "&"
package main
import "fmt"
func main() {
var a int
fmt.Printf("请输入:")
// fmt.Scanf("%d", &a)
fmt.Scan(&a)
fmt.Printf("输入的结果是:%d", a)
}
5、类型别名
通过 type 别名 类型 的方式定义别名
package main
import "fmt"
func main() {
type bigint int64
var a bigint = 10
fmt.Printf("%T\n", a)
type (
long int64
char byte
)
var b long = 20
var c char = 'a'
fmt.Printf("%T %T\n", b, c)
}
网友评论