亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    go語言怎么進行強制類型轉(zhuǎn)換

    go語言中的強制類型轉(zhuǎn)換有三種語法形式:1、類型斷言,語法“value, ok := x.(需要轉(zhuǎn)換的類型)”;2、使用“type (a)”形式進行的類型轉(zhuǎn)換,語法“類型B的值 = 類型B(類型A的值)”;3、指針類型轉(zhuǎn)換,語法“(*指針類型)(unsafe.Pointer(值))”。

    go語言怎么進行強制類型轉(zhuǎn)換

    本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

    golang是強類型語言,有強制類型轉(zhuǎn)換,但是不同于Java語言所使用的強制類型轉(zhuǎn)換。

    golang強制類型轉(zhuǎn)換

    golang語言中分為類型轉(zhuǎn)換(type conversion)類型斷言(type assertion)指針類型轉(zhuǎn)換。

    1、類型斷言

    類型斷言(Type Assertion)是一個使用在接口值上的操作,用于檢查接口類型變量所持有的值是否實現(xiàn)了期望的接口或者具體的類型。

    語法格式如下:

    value, ok := x.(T)
    登錄后復(fù)制

    其中,x 表示一個接口的類型,T 表示一個具體的類型(也可為接口類型)。

    示例:

    package main  import "fmt"  func main() {     var a interface{} =10     t,ok:= a.(int)     if ok{         fmt.Println("int",t)     }     t2,ok:= a.(float32)     if ok{         fmt.Println("float32",t2)     } }
    登錄后復(fù)制

    打印結(jié)果是:int 10 因為 golang 自動推斷 a 是 int 類型。 (這個更像是Java的強制類型轉(zhuǎn)換,認為變量 a 是 int 類型,就強轉(zhuǎn)為 int 類型來使用)
    登錄后復(fù)制

    2、類型轉(zhuǎn)換

    package main  import "fmt"  func main() {    var a float32 = 5.6    var b int = 10    fmt.Println (a * float32(b)) }
    登錄后復(fù)制

    代碼段中的 float32(b) 就是第二種強制類型轉(zhuǎn)換, 普通變量類型int,float,string 都可以使用 type (a)這種形式來進行強制類型轉(zhuǎn)換,比如

    var a int32  = 10 var b int64 = int64(a) var c float32 = 12.3 var d float64 =float64(c)
    登錄后復(fù)制

    這種類型轉(zhuǎn)換形式更像是Java的通過構(gòu)造類的構(gòu)造方法創(chuàng)建一個新類型對象。在Java語法中不屬于強制類型轉(zhuǎn)換。

    3、指針類型轉(zhuǎn)換

    package main  func main() {    var a int = 10    var p *int =&a    var c *int64     c= (*int64)(p) }
    登錄后復(fù)制

    這樣的代碼是錯誤的,編譯器會提示cannot convert p (type *int) to type *int64
    指針的強制類型轉(zhuǎn)換需要用到unsafe包中的函數(shù)實現(xiàn)

    package main  import "unsafe" import "fmt"  func main() {     var a int =10     var b *int =&a     var c *int64 = (*int64)(unsafe.Pointer(b))     fmt.Println(*c) }
    登錄后復(fù)制

    總結(jié)

    golang中的強制類型轉(zhuǎn)換有三種語法形式,分別是 類型斷言,類型轉(zhuǎn)換,指針類型轉(zhuǎn)換,語法上類型斷言指針類型轉(zhuǎn)換和Java比較像。

    golang和Java的強制類型轉(zhuǎn)換可以對比著理解,但是不同語言設(shè)計思想不同,不能硬類比。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號