golang学习笔记(三)数据类型

2022-11-08  本文已影响0人  NIIIICO
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)
}
上一篇 下一篇

猜你喜欢

热点阅读