ホームページ >バックエンド開発 >Golang >Go の文字列宣言として「hello」が違法なのはなぜですか?

Go の文字列宣言として「hello」が違法なのはなぜですか?

DDD
DDDオリジナル
2024-12-01 19:13:11641ブラウズ

Why is 'hello' Illegal as a String Declaration in Go?

Go の文字列宣言を理解する: 'hello' が違法である理由

Go では、二重引用符または一重引用符を使用して文字列を宣言できます。しかし、微妙な違いがあります。二重引用符 ("hello") は文字を含む文字列を表しますが、一重引用符 ('hello') は単一の Unicode コード ポイントまたはルーンを表します。

Go で文字列変数に 'hello' を割り当てると、コンパイラはそれをルーン リテラルとして解釈します。ルーンは単一の Unicode コード ポイントであり、文字列ではありません。その結果、単一の文字を文字列変数に割り当てようとすると、「不正なルーン リテラル」エラーが発生します。

Go では、文字列とルーンの違いは重要です。文字列はルーンで構成されますが、すべてのルーンを文字列として表現できるわけではありません。たとえば、ヌル文字 ( ) は Go では文字列として表すことができませんが、ルーンとして表すことができます:

var nul rune = '<pre class="brush:php;toolbar:false">var hello string = "hello"
'

文字を含む文字列を割り当てるには、二重引用符を使用します:

このコードは、文字列「hello」を hello 変数に正しく割り当てます。

文字列とルーン文字の区別は次のとおりです。 Go のルーツはシステム プログラミングであり、文字やコード ポイントを明示的に処理する必要があることがよくあります。一重引用符は文字列を宣言する便利な方法のように思えるかもしれませんが、エラーを避けるために技術的な違いを理解することが重要です。

以上がGo の文字列宣言として「hello」が違法なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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