ホームページ >バックエンド開発 >Golang >文字列ポインターを必要とする関数に型なしの文字列定数を渡すにはどうすればよいですか?

文字列ポインターを必要とする関数に型なしの文字列定数を渡すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 16:00:29698ブラウズ

How to Pass an Untyped String Constant to a Function Expecting a String Pointer?

エラー: 型なしの文字列を文字列ポインターに変換しています

文字列ポインターを期待する関数に型なしの文字列定数を引数として渡すと、次のエラー:

cannot convert (untyped string constant) to *string [duplicate]

Issue

提供されたコードの StorageClassName パラメーターには文字列へのポインターが必要です。ただし、指定された値 "manual" は型なしの文字列定数です。

解決策

この問題を解決するには、文字列定数を引数として直接渡すことはできません。代わりに、最初に文字列変数を宣言し、それに文字列定数を割り当てる必要があります。その後、& 演算子を使用して変数のアドレスをポインター引数として渡すことができます。

// Declare a string local and assign the constant string literal to it
manualStr := "manual"

// Pass the address of the local variable as the parameter argument
persistentvolumeclaim := &apiv1.PersistentVolumeClaim{

    ObjectMeta: metav1.ObjectMeta{
        Name: "mysql-pv-claim",
    },
    Spec: apiv1.PersistentVolumeClaimSpec{
        StorageClassName: &manualStr,
    },
}

このアプローチに従うことで、必要な文字列ポインターを引数として関数に正常に渡すことができます。

以上が文字列ポインターを必要とする関数に型なしの文字列定数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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