真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言如何進(jìn)行強(qiáng)制類型轉(zhuǎn)換

今天小編給大家分享一下go語言如何進(jìn)行強(qiáng)制類型轉(zhuǎn)換的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

成都創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的西部信息服務(wù)器托管服務(wù)

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

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

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

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

1、類型斷言

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

語法格式如下:

value, ok := x.(T)

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

示例:

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)
    }
}
打印結(jié)果是:int 10
因?yàn)?nbsp;golang 自動(dòng)推斷 a 是 int 類型。
(這個(gè)更像是Java的強(qiáng)制類型轉(zhuǎn)換,認(rèn)為變量 a 是 int 類型,就強(qiáng)轉(zhuǎn)為 int 類型來使用)

2、類型轉(zhuǎn)換

package main

import "fmt"

func main() {
   var a float32 = 5.6
   var b int = 10
   fmt.Println (a * float32(b))
}

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

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

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

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

package main

func main() {
   var a int = 10
   var p *int =&a
   var c *int64 
   c= (*int64)(p)
}

這樣的代碼是錯(cuò)誤的,編譯器會(huì)提示cannot convert p (type *int) to type *int64
指針的強(qiáng)制類型轉(zhuǎn)換需要用到unsafe包中的函數(shù)實(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)
}

以上就是“go語言如何進(jìn)行強(qiáng)制類型轉(zhuǎn)換”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站題目:go語言如何進(jìn)行強(qiáng)制類型轉(zhuǎn)換
網(wǎng)站URL:http://weahome.cn/article/gcjoci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部