Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahpetik Go String Literals daripada AST?
Menyahpetik Go String Literal daripada Syntax Tree
Apabila melintasi pepohon sintaks Go, mungkin perlu untuk mengekstrak nilai sebenar rentetan literal diwakili sebagai nod ast.BasicLit dengan Jenis ditetapkan kepada token.STRING. Walau bagaimanapun, nod ini pada mulanya mengandungi kod Go yang mewakili rentetan, bukan nilai literalnya.
Penyelesaian:
Untuk menukar kod literal rentetan Go kepada nilai sebenar, gunakan fungsi strconv.Unquote(). Fungsi ini mengalih keluar petikan daripada rentetan yang disebut, membolehkan anda memperoleh nilai rentetan mentah.
Nota:
strconv.Unquote() hanya boleh menyahtanda rentetan yang disertakan dalam petikan (sama ada tunggal atau berganda). Jika rentetan literal tidak disertakan dalam petikan, anda perlu menambahnya secara manual sebelum menggunakan fungsi.
Contoh:
import ( "fmt" "strconv" ) func main() { // Given a quoted string quotedString := "`Hi`" // Unquote it unquotedString, err := strconv.Unquote(quotedString) if err != nil { fmt.Println("Error:", err) } else { fmt.Println(unquotedString) // Prints "Hi" } // Given an unquoted string unquotedString2 := "Hi" // Add quotes and unquote it quotedString2 := strconv.Quote(unquotedString2) unquotedString2, err = strconv.Unquote(quotedString2) if err != nil { fmt.Println("Error:", err) } else { fmt.Println(unquotedString2) // Also prints "Hi" } }
Atas ialah kandungan terperinci Bagaimana untuk Menyahpetik Go String Literals daripada AST?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!