ホームページ  >  記事  >  バックエンド開発  >  golang 配列の変換を調べる

golang 配列の変換を調べる

PHPz
PHPzオリジナル
2023-04-05 13:48:13597ブラウズ

Golang では、配列は同じ型の要素のコレクションです。配列の長さは作成時に決定され、一度決定すると変更することはできません。 Golang の配列は値型であるため、配列が変数に割り当てられると、変数は配列全体のコピーを保持します。この記事では、配列変換テクニック、つまり、ある配列を別の配列に変換する方法について説明します。

配列変換の基礎知識

Golang では、2 種類の配列変換があります:

1. 同じ形式で型が異なる配列間の変換 (例: int 配列と float64 配列)。

2. 形式と型が異なる配列間の変換 (例: int 配列と string 配列)。

最初のケースでは、配列変換は非常に簡単です。型変換演算子を使用して、ある型の配列を別の型の配列に変換するだけです。例:

func main() {
    intArr := [3]int{1, 2, 3}
    var floatArr [3]float64
    
    for i, v := range intArr {
        floatArr[i] = float64(v) //类型转换
    }
    
    fmt.Println(floatArr) //输出 [1.0 2.0 3.0]
}

上記のコードは、int 型配列 intArr を float64 型配列 floatArr に変換します。必要なのは、int 型を float64 型に変換することだけです。

2 番目のケースでは、配列変換の技術的要件が高くなります。異なるデータ型を異なるデータ型に変換する必要があるためです。この場合、スライスやマッピングなどの他の変換テクニックに頼る必要があります。

1. スライス変換

スライスは、変更可能な配列として使用できるため、Golang でより一般的に使用されるデータ構造の 1 つです。この場合、スライスを使用して、異なる形式の配列を変換できます。各配列要素をスライスに追加し、そのスライスを別の形式の配列に変換する必要があります。

func main() {
    intArr := []int{1, 2, 3}
    var floatArr []float64
    
    for _, v := range intArr {
        floatArr = append(floatArr, float64(v)) //转换并添加到切片中
    }
    
    fmt.Println(floatArr) //[1.0 2.0 3.0]
    fmt.Println(reflect.TypeOf(floatArr).Kind()) //输出: slice -- 切片类型
}

上記のコードは、int 型のスライス intArr を float64 型のスライス floatArr に変換します。必要なのは、int 型を float64 型に変換することだけです。ここでは、append() 関数を使用して、変換された要素をスライスに追加します。最後に、reflect.TypeOf() 関数を使用して、floatArr の型がスライス型であるかどうかを確認します。

2. マッピング変換

スライスの使用に加えて、配列変換にマッピング (マップ) を使用することもできます。このメソッドでは、キーと値のマップを定義し、入力配列の各要素を指定された形式の値に変換し、このキーと値のペアをマップに追加する必要があります。

func main() {
    intArr := [3]int{1, 2, 3}
    var floatArr [3]float64
    
    conversionMap := map[int]float64{
        0: 1.0,
        1: 2.0,
        2: 3.0,
    }
    
    for i, v := range intArr {
        floatArr[i] = conversionMap[v] //转换并添加到映射中
    }
    
    fmt.Println(floatArr) //[1.0 2.0 3.0]
}

上記のコードでは、キーと値のペアのマッピングconversionMapを定義して、int型の配列要素をfloat64型の値にマッピングします。次に、このマッピングを使用して int 配列を float64 配列に変換できます。ここでは int 配列の値のみを変換したため、int 配列の長さは float64 配列の長さと同じである必要があることに注意してください。

概要

この記事では、配列変換テクニック、つまり同じ形式で異なる型の配列間の変換と、異なる形式と型の配列間の変換について説明しました。このうち、最初のケースは非常に単純です。型変換演算子を使用して、ある型の配列を別の型の配列に変換するだけです。

2 番目のケースでは、スライス変換とマッピング変換の 2 つの方法を導入しました。変換にスライスを使用する場合は、各配列要素をスライスに追加してから、そのスライスを別の形式の配列に変換する必要があります。変換にマッピングを使用する場合は、キーと値のペアのマッピングを定義し、入力配列の各要素を指定された形式の値にマップし、このキーと値のペアをマッピングに追加する必要があります。

以上がgolang 配列の変換を調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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