本文介绍: Go 语言数据类型分为:基本数据类型和复合数据类型基本数据类型有:整型、浮点型、布尔型、字符串复合数据类型有:数组切片、结构体、函数map、通道(channel)、接口

一、数字类型

1、Golang 数据类型介绍
  1. Go 语言数据类型分为:基本数据类型和复合数据类型
  2. 基本数据类型有:
    1. 整型、浮点型、布尔型、字符串
  3. 复合数据类型有:
    1. 数组切片、结构体、函数map、通道(channel)、接口
2、整型分为两大类

3、unsafe.Sizeof
package main
import (
	"fmt"
	"unsafe"
)
func main() {
	var a int8 = 124
	fmt.Printf("%Tn", a)       // int8
    fmt.Println(unsafe.Sizeof(a))      // 1 (表示占用1个字节,也就是8 byte)
}
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
}
5、浮点型
  • Go语言支持两种浮点型数:float32和float64
package main

import(
    "fmt"
    "math"
)

func main(){
    fmt.Printf("%fn",math.Pi)    //3.141593(默认保留6位小数)
    fmt.Printf("%.2fn",math.Pi)    //3.14(保留2位小数)
}
6.reflect.TypeOf查看数据类型
package main

import(
    "fmt"
    "reflect"
)

func main(){
    c := 10
    fmt.PrintIn(reflect.TypeOf(c))    //int
}

二、int互转

1、int常用转换
package main

import(
    "fmt"
    "strconv"
)

func main(){
    //string到int
    intV,_ := strcomv.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
}
2、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

}
3、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

}
4、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.PrintIn(c)    // 5
}

三、int与str转换

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--%Tn",str2,str2)    //12345--string

    //2.2 str转int64
    v1,_ := strconv.ParseFloat(str2,64)
    fmt.Printf("%v---%Tn",v1,v1)      // 123456---float64
}
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---%Tn",_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---%Tn",v1,v1)      // 123456---float64
}

四、布尔值

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

  • 注意:

    • 布尔类型变量的默认值为 false。

    • Go 语言中不允许将整型强制转换为布尔型

    • 布尔型无法参与数值运算,也无法与其他类型进行转换

package main
import (
	"fmt"
	"unsafe"
)
func main() {
	var b = true
	fmt.Println(b, "占用字节:", unsafe.Sizeof(b))  // true 占用字节: 1
}

原文地址:https://blog.csdn.net/MrWangisgoodboy/article/details/134643612

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_3048.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注