ホームページ  >  記事  >  バックエンド開発  >  Go言語で強制型変換を行う方法

Go言語で強制型変換を行う方法

青灯夜游
青灯夜游オリジナル
2023-01-07 14:05:475818ブラウズ

Go 言語には、強制型変換の文法形式が 3 つあります: 1. 型アサーション、構文 "value, ok := x. (変換する必要がある型)"; 2. "型" を使用します。 (a)形式 型変換の場合、構文は「B型の値 = B型(A型の値)」、 3. ポインタ型変換の場合、構文は「(*ポインタ型)(unsafe.Pointer(value)」となります。 )」。

Go言語で強制型変換を行う方法

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

Golang は厳密に型指定された言語であり、強制的な型変換を備えていますが、Java 言語で使用される強制的な型変換とは異なります。

golang の必須型変換

golang 言語は、型変換 (型変換)型アサーション (型アサーション) に分かれています。 および ポインタ型変換

1. 型アサーション

型アサーション (型アサーション) は、インターフェイスの値に対して使用される操作であり、インターフェイスの型変数をチェックするために使用されます。保持されている値は、予期されるインターフェイスまたは具象型を実装します。

構文形式は次のとおりです。

value, ok := x.(T)

このうち、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)
    }
}
打印结果是:int 10
因为 golang 自动推断 a 是 int 类型。
(这个更像是Java的强制类型转换,认为变量 a 是 int 类型,就强转为 int 类型来使用)

2. コード セグメントに、conversion

package main

import "fmt"

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

float32( と入力します。 b) は、強制的な型変換の 2 番目のタイプです。一般的な変数型 int、float、および string は、型 (a) を強制的に使用することができます。たとえば、

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

この型変換形式は、Java が作成するコンストラクター クラスのコンストラクター メソッドを介して新しい型オブジェクトを取得します。これは Java 構文のキャストではありません。

3. ポインタ型変換

package main

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

このようなコードは間違っているため、コンパイラは変換できないことを示すプロンプトを表示します。 p (type *int) から type *int64 ポインターの強制型変換には、
unsafe パッケージの関数実装を使用する必要があります

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)
}

概要

golang には、強制型変換の 3 つの文法形式があります。つまり、

型アサーション型変換ポインタ型変換です。 、文法 Type AssertionPointer Type Conversion は Java により似ています。

Golang と Java の強制型変換は比較的理解できますが、言語が異なれば設計思想も異なるため、一概に比較することはできません。

【関連する推奨事項:

Go ビデオ チュートリアル プログラミング教育

以上がGo言語で強制型変換を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。