日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

golang強制類型轉換和類型斷言_Golang

作者:Kevin_cai09 ? 更新時間: 2022-03-07 編程語言

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)

原文鏈接:https://blog.csdn.net/weixin_41922289/article/details/117830987

欄目分類
最近更新