不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • Langchain
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • Langchain
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核
  • GO基础

    • 01.GO介绍与安装
    • 02.GO基本语法
    • 03.内置运算符
    • 04.基本数据类型
    • 05.数字类型
      • 01.数字类型
        • 1.1 Golang数据类型介绍
        • 1.2 整型分为两大类
        • 1.3 unsafe.Sizeof
        • 1.4 int不同长度直接的转换
        • 1.5 浮点型
        • 1.6 reflect.TypeOf查看数据类型
      • 02.int互转
        • 2.0 int常用转换
        • 2.1 int8转int16
        • 2.2 int16转float32
        • 2.3 math.Sqrt强转
      • 03.int与str转换
        • 3.1 int与str转换
        • 3.2 str与int64转换
      • 04.布尔值
    • 06.字符串类型
    • 07.数组
    • 08.切片
    • 09.map
    • 10.指针
    • 11.结构体
    • 12.interface接口
    • 13.循环
    • 14.包管理工具go mod
    • 15.单元测试
    • 16.go规范
  • 面向对象

  • 并发编程

  • 常用库

  • 数据库操作

  • Beego框架

  • Beego商城

  • GIN框架

  • GIN论坛

  • 微服务

  • 设计模式

  • Go
  • GO基础
xiaonaiqiang
2021-05-19
目录

05.数字类型

# 01.数字类型

# 1.1 Golang数据类型介绍

  • Go 语言中数据类型分为:基本数据类型和复合数据类型

  • 基本数据类型有:

    • 整型、浮点型、布尔型、字符串
  • 复合数据类型有:

    • 数组、切片、结构体、函数、map、通道(channel)、接口

# 1.2 整型分为两大类

  • 有符号整形按长度分为:int8、int16、int32、int64

  • 对应的无符号整型:uint8、uint16、uint32、uint64

  • 关于字节:

    • 字节也叫 Byte,是计算机数据的基本存储单位。8bit(位)=1Byte(字节) 1024Byte(字节)=1KB

    • 1024KB=1MB 1024MB=1GB

    • 1024GB=1TB 。在电脑里一个中文字是占两个字节的。

# 1.3 unsafe.Sizeof

  • unsafe.Sizeof(n1) 是 unsafe 包的一个函数,可以返回 n1 变量占用的字节数
package main
import (
	"fmt"
	"unsafe"
)
func main() {
	var a int8 = 124
	fmt.Printf("%T\n", a)       // int8
    fmt.Println(unsafe.Sizeof(a))      // 1 (表示占用1个字节,也就是8 byte)
}
1
2
3
4
5
6
7
8
9
10

# 1.4 int不同长度直接的转换

package main
import (
	"fmt"
)
func main() {
	var num1 int8
	num1 = 127
	num2 := int32(num1)   // 将num1类型转换成 int32 并赋值给num1
	fmt.Printf("值:%v 类型%T", num2, num2) //值:127 类型 int32
}
1
2
3
4
5
6
7
8
9
10

# 1.5 浮点型

  • Go 语言支持两种浮点型数:float32 和 float64
package main
import (
	"fmt"
	"math"
)
func main() {
	fmt.Printf("%f\n", math.Pi)    // 3.141593 (默认保留 6 位小数)
	fmt.Printf("%.2f\n", math.Pi)   // 3.14 (保留 2 位小数)
}
1
2
3
4
5
6
7
8
9

# 1.6 reflect.TypeOf查看数据类型

package main
import (
	"fmt"
	"reflect"
)

func main() {
	c := 10
	fmt.Println( reflect.TypeOf(c) )   // int
}
1
2
3
4
5
6
7
8
9
10

# 02.int互转

# 2.0 int常用转换

package main

import (
	"fmt"
	"strconv"
)

func main()  {
	// string到int
	intV,_ := strconv.Atoi("123456")
	// string到int64
	int64V, _ := strconv.ParseInt("123456", 10, 64)

	// int到string
	strS := strconv.Itoa(123)
	// int64到string
	var tmp int64 =  123
	str64S:=strconv.FormatInt(tmp,10)
	
	fmt.Printf("%T--%T--%T--%T", intV, int64V, strS, str64S)
	// int--int64--string--string
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 2.1 int8转int16

package main
import "fmt"
func main() {
	var a int8 = 20
	var b int16 = 40
	var c = int16(a) + b    //要转换成相同类型才能运行
	fmt.Printf("值:%v--类型%T", c, c)  //值:60--类型 int16
}
1
2
3
4
5
6
7
8

# 2.2 int16转float32

package main
import "fmt"
func main() {
	var a float32 = 3.2
	var b int16 = 6
	var c = a + float32(b)
	fmt.Printf("值:%v--类型%T", c, c)  //值:9.2--类型 float32
}
1
2
3
4
5
6
7
8

# 2.3 math.Sqrt强转

package main
import (
	"fmt"
	"math"
)
func main() {
	var a, b = 3, 4
	var c int
	// math.Sqrt()接收的参数是 float64 类型,需要强制转换
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Println(c)  // 5
}
1
2
3
4
5
6
7
8
9
10
11
12

# 03.int与str转换

# 3.1 int与str转换

package main
import (
	"fmt"
	"strconv"
)

func main() {
	//2.1 int64转str
	var num2 int64 = 123456
	str2 := strconv.FormatInt(num2, 10)
	fmt.Printf("%v---%T \n",str2,str2)  // 123456---string

	//2.2 str转int64
	v1, _ := strconv.ParseFloat(str2, 64)
	fmt.Printf("%v---%T\n",v1,v1)      // 123456---float64
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 3.2 str与int64转换

package main
import (
	"fmt"
	"strconv"
)

func main() {
	//1.1 int转sting
	num1 := 123456
	str1 := strconv.Itoa(num1)
	fmt.Printf("%v---%T \n",str1,str1)  // 123456---string

	// 1.2 sting转int
	_int, err := strconv.Atoi(str1)
	fmt.Println(_int,err)  // 123456 <nil>
	fmt.Printf("%v---%T\n",_int,_int)   // 123456---int


	//2.1 int64转str
	var num2 int64 = 123456
	str2 := strconv.FormatInt(num2, 10)
	fmt.Printf("%v---%T \n",str2,str2)  // 123456---string

	//2.2 str转int64
	v1, _ := strconv.ParseFloat(str2, 64)
	fmt.Printf("%v---%T\n",v1,v1)      // 123456---float64
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 04.布尔值

  • Go 语言中以 bool 类型进行声明布尔型数据,布尔型数据只有 true(真)和 false(假)两个值。

  • 注意:

    • 1.布尔类型变量的默认值为 false。
    • 2.Go 语言中不允许将整型强制转换为布尔型.
    • 3.布尔型无法参与数值运算,也无法与其他类型进行转换。
package main
import (
	"fmt"
	"unsafe"
)
func main() {
	var b = true
	fmt.Println(b, "占用字节:", unsafe.Sizeof(b))  // true 占用字节: 1
}
1
2
3
4
5
6
7
8
9
上次更新: 2024/3/13 15:35:10
04.基本数据类型
06.字符串类型

← 04.基本数据类型 06.字符串类型→

最近更新
01
05.快递Agent智能体
06-04
02
200.AI Agent核心概念
06-04
03
105.Agent智能体梳理
06-04
更多文章>
Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式