首页后端开发其他后端知识Golang中如何实现强制类型转换和类型断言

Golang中如何实现强制类型转换和类型断言

时间2024-03-26 11:44:03发布访客分类其他后端知识浏览936
导读:这篇文章主要给大家介绍“Golang中如何实现强制类型转换和类型断言”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Golang中如何实现强制类型转换和类型断言”文章能对大...
这篇文章主要给大家介绍“Golang中如何实现强制类型转换和类型断言”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Golang中如何实现强制类型转换和类型断言”文章能对大家有所帮助。

 


1.强制类型转换

golang是强类型语言,但是和c++,Java不太一样的是,go中没有隐式类型转换,go中的类型转换只有:强制类型转换和断言

在java中:

    public static void main(String[] args){
    
        int a = 1;
    
        double b = 1.0;
    
        System.out.println(a * b);

    }


在java中这样是没有问题,编译器隐式的把a向上转为double类型

但是在go中是会报错的:

需要进行强制类型转换:

func Test()  {

 var a int = 1
 var b float32 = 1.0
 fmt.Println(float32(a) * b)
}


go中的强制类型转换为:

type(v)


普通变量类型int,float,string 都可以使用 type (a)这种形式来进行强制类型转换,

比如:

var a int32  = 10
var b int64 = int64(a)
var c float32 = 12.3
var d float64 =float64(c)

指针的强制类型转换需要用到unsafe包中的函数实现

func Test()  {
    
 var a int =10
 var b *int =&
a
 var c *int64 = (*int64)(unsafe.Pointer(b))
 fmt.Println(*c)
}


2.类型断言

go中的类型判断则是判断一个变量是否属于某一种类型

func Test()  {

 var a interface{
}
 = 10
 _,isInt := a.(int) // 进行类型的断言的变量必须是空接口
 if isInt{

  fmt.Println(a)
 }

}


形式如下:

interface{
}
    .(type)



感谢各位的阅读,以上就是“Golang中如何实现强制类型转换和类型断言”的内容了,通过以上内容的阐述,相信大家对Golang中如何实现强制类型转换和类型断言已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Golang中如何实现强制类型转换和类型断言
本文地址: https://pptw.com/jishu/653477.html
DOM属性成员与文档流是什么? Golang怎么样读取单行超长的文本

游客 回复需填写必要信息