您的位置 首页 golang

golang第四天,基础数据类型(数值型和布尔型)

数值型

一. 数值引入

例如:我们要存储一个人的年龄,就需要用到数值类型

二. 概述

用于定义证书类型变量的标识符

三. 作用与应用场景

在计算机当中存储数值类型

1. 整数型:

  • int8 有符号 8 位整型 (-128 到 127) 长度:8bit
  • int16 有符号 16 位整型 (-32768 到 32767)
  • int32 有符号 32 位整型 (-2147483648 到 2147483647)
  • int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
  • uint8 无符号 8 位整型 (0 到 255) 8位都用于表示数值:
  • uint16 无符号 16 位整型 (0 到 65535)
  • uint32 无符号 32 位整型 (0 到 4294967295)
  • uint64 无符号 64 位整型 (0 到 18446744073709551615)

int和uint:根据底层平台,表示32或64位整数。除非需要使用特定大小的整数,否则通常应该使用int来表示整数。大小:32位系统32位,64位系统64位。 范围:-2147483648到2147483647的32位系统和-9223372036854775808到9223372036854775807的64位系统。

 // 数值申请
var num1 = 100  // int
num2 := 200.    // int
var num3 int32  // int32
num4 := 300     // int

// 类型转换
num3 = int32(num4)
fmt.Println(num3)  // 300

package main

import "fmt"

func main() {
    var num1 = 100  // int
    num2 := 200    // int
    var num3 int32  // int32
    num4 := 300     // int

    // 指定类型
    var num5 int64 = 123
    fmt.Printf("num1=%T", num1)	// int
    fmt.Printf("num2=%T", num2)	// int
    fmt.Printf("num3=%T", num3)	// int32
    fmt.Printf("num4=%T", num4)     // int
    fmt.Printf("num5=%T", num5)	// int64
}

  

四. 注意事项

  1. 默认数据类型为int
  2. int32,int64由于占用空间大小不一样,被认为是不同的类型,所有不能相互赋值
  3. 不同类型的转换
  4. 占用字节 unsafe.Sizeof(intVariables)
  5. 注意使用时数据可能溢出与损失的问题

2. 浮点型

  • float32(IEEE-754 32位浮点型数)
  • float64(IEEE-754 64位浮点型数)
  • complex64(32 位实数和虚数)
  • complex128(64 位实数和虚数)

  1. 十进制形式
 package main

import (
    "fmt"
    "unsafe"
)

func main() {
    var num1 float32 = 3.1415926
    num2 := .1415926
    fmt.Printf("num1的类型=%T,占用的字节大小=%d\n",num1,unsafe.Sizeof(num1))
    fmt.Printf("num2的类型=%T,占用的字节大小=%d\n",num2,unsafe.Sizeof(num2))
}

  

注意:这里用到了main的unsafe包,用于获取数据的字节大小

  1. 科学计数法展示
 num1 := 3.1415926e2  // 3.1415926乘以10的2次方
num2 := 3.1415926e-2 // 3.1415926除以10的2次方

  
  1. 不同精度的浮点类型转换
 var num1 float32 = 3.14
var num2 float64 = 3.14
num2 = float64(num1)
fmt.Println(num1)
fmt.Println(num2)

  
  1. 注意事项

  1. 默认数据类型为float64
  2. float32,float64由于占用空间大小不一样,被认为是不同的类型
  3. 不同类型的转换
  4. 单精度,双精度类型转换的精度损失与溢出

3. 其他

  • byte(类似 uint8)
  • rune(类似 int32)
  • uint(32 或 64 位)
  • int(与 uint 一样大小)
  • uintptr(无符号整型,用于存放一个指针)

2. 布尔型

布尔型的值值可以是常量true或者false。一个简单的例子 const a bool = false

 var flag bool               // 默认是false
flag1 = true                // flag1 declared but not used
flag2 := (true == false)    // flag2 declared but not used

// false
if 3 == 4 {
    fmt.Println("false")
} else {
    fmt.Println("true")
}

fmt.Println(!true, !false, !!true)  // false true  true

  

注意:

  1. 只有true和false
  2. 其他类型不可以转换成布尔类型

最后

刚学golang,希望大家监督并且一起努力 有兴趣的小伙伴,欢迎关注我公众号:小何成长

文章来源:智云一二三科技

文章标题:golang第四天,基础数据类型(数值型和布尔型)

文章地址:https://www.zhihuclub.com/98325.shtml

关于作者: 智云科技

热门文章

网站地图