go

一. 整型

1. 整型

1. 无符号
    1)int8  1 个字节  -128-127
    2)int16 2个字节
    3)int32
    4)  int64
2. 有符号
    略

2. 常用整型

1. int 有符号。跟随系统,系统是32位的,int就是int32,系统是64位的,int就是int64
2. uint 无符号的int,位数同int
3. rune 有符号,同int32,表示一个unicode码
4. byte 同uint8

3. 整型的使用细节

1. 整型分为有符号和无符号,int,uint的大小与系统有关
2. 整型默认声明为int型
3. 如何查看摸个变量的字节大小和数据类型
    Printf()    // 格式化输出
4. 使用过程中尽量在保证程序运行的情况下,使用占用空间小的数据类型

二. 浮点型

1. 单精度float32
2. 双精度float64(默认)
3. 浮点数都是有符号的
4. 浮点数可能造成精度损失,推荐使用float64

三. 字符类型

1. go中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存
2. go的字符串就是一串固定长度的字符连接起来的字符序列。
3. ASCII中的字符可以使用byte来保存
4. 如果字符对应的码值大于255(例如汉字),我们可以使用int类型
5. 直接使用fmt.Println()会打印字符的字符的长度,使用fmt.Printf("%c", m1)来打印字符
6. 字符常量使用单引号''括起来
7. go语言使用utf8编码
8. 字符类型是可以运算的,相当于一个整数,运算时是按照其对应的码值来运算的

四. 布尔类型

1. 布尔类型只有true和false
2. 布尔类型占一个字节

五. string 字符串

1. 字符串就是一串固定长度的字符连接起来的字符序列。go的字符串是由单个字节连接起来的
2. 字符串一旦赋值,就不能修改,go中字符串是不可变的
    例:
    var str1 == "hello"
    str1[0] = 'a'  // 报错

3. 字符串的两种表示形式
    1)双引号
    2)反引号(~键),相当于Python中的三引号
4. 字符串拼接方式使用 +5. 多行字符串拼接时,+号要留在上一行
    "hello" + "world" + "nice" +  
    "to" + "meet" + 
    "you"

六. 数据类型的转换

1. 基本数据类型之间的转换

1. go在不同类型的变量之间赋值时需要显示转换,go的数据类型不能自动转换
1. go中,数据类型的转换可以从表示范围小-->表示范围大,也可以从范围大-->范围小
2. 被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!(目前我的理解是,一个变量对应一块内存空间)
3. 在转换中,比如将int64 转成int8 ,编译时不会报错,只是转换的结果是按溢出处理,和我们希望的结果不一样,因此转换时要注意考虑范围

    var a int 32 = 10
    var b int64 = a + 12  // 错误,a是int32,加12之后还是int32

2. 基本数据类型和string之间的转换

1. func Srintf
参数需要和表达式的数据类型相匹配
例:
func main(){
    var num1 int = 99
    var num2 float64 = 23.5
    var b bool = true
    var mychar = 'h'
    var str string

    str = fmt.Sprintf("%d", num1)
    str = fmt.Sprintf("%f", num2)
    str = fmt.Sprintf("%f", b)
    str = fmt.Sprintf("%c", mychar)  
}

2. 使用strconv包的函数
1) 将一个基本数据类型转为字符串 str
= strconv.FormatInt(num2, 10) // 默认是将64位整数转为字符串 str = strconv.FormatFloat(num4, 'f', 10, 64) // 小数后10位,float64 str = strconv.FormatBool(b2)
2)将字符串转为基本数据类型
strconv.ParseInt(), strconv.ParseFloat(),strconv.ParseBool()

原文地址:https://www.cnblogs.com/JackShi/p/13956623.html