ホームページ >バックエンド開発 >Golang >Go の構文ツリーで文字列リテラルの値を取得するにはどうすればよいですか?

Go の構文ツリーで文字列リテラルの値を取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-09 02:25:10817ブラウズ

How Can I Retrieve the Value of String Literals in Go's Syntax Tree?

Go コードの文字列リテラル値を明らかにする

構文ツリー内で Go 文字列リテラルの値を明らかにすることは、一般的な課題となる可能性があります。これを実現するには、文字列コード表現を実際の値に変換する必要があります。

回答:

これを実現するには、strconv.Unquote() 関数を利用できます。 、引用符で囲まれた文字列コードを引用符で囲まれていない値に変換します。ただし、この関数は引用符 (" または ') で囲まれた文字列に対してのみ動作することに注意することが重要です。

引用符で囲まれていない文字列を処理するには、strconv.Unquote() を呼び出す前に必要な引用符を手動で追加できます。例:

unquoted := strconv.Unquote("Hi")  // Error: invalid syntax
unquoted = strconv.Unquote(`Hi`) // Error: invalid syntax
withQuotes := strconv.Unquote(`"Hi"`) // Prints "Hi"
withQuotes = strconv.Unquote(`"Hi\x21"`) // Prints "Hi!"

fmt.Println(unquoted)
fmt.Println(withQuotes)

出力:

invalid syntax
invalid syntax
Hi
Hi!

覚えておいてください。このアプローチは、単純な文字列リテラルにのみ適用されます。より複雑なシナリオの場合は、別の方法を検討する必要がある場合があります。

以上がGo の構文ツリーで文字列リテラルの値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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