Mengambil Nilai Rentetan daripada Kod Harfiah Go String
Dalam senario manipulasi pokok sintaks Go, anda mungkin perlu mengekstrak nilai rentetan literal daripada nod ast.BasicLit. Walaupun nod ini menunjukkan jenis literal rentetan, nilainya diwakili sebagai kod Go dan bukannya nilai rentetan sebenar. Artikel ini membincangkan penyelesaian kepada cabaran ini.
Penyelesaian: strconv.Unquote()
Fungsi strconv.Unquote() ialah kuncinya untuk menangani keperluan ini. Ia membolehkan penukaran literal rentetan yang diwakili sebagai kod Go kembali kepada nilainya yang tidak disebut. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa strconv.Unquote() hanya nyah petikan rentetan yang disertakan dalam tanda petikan ("). Oleh itu, jika rentetan literal dalam nod ast.BasicLit anda kekurangan tanda petikan, anda mesti menambahnya secara manual sebelum menggunakan strconv.Unquote().
Contoh Penggunaan:
import ( "fmt" "strconv" ) func main() { // String literal without quotation marks (will fail) str1 := "Hello" // String literal with quotation marks (valid) str2 := `"Hello world"` // Manually adding quotation marks to the first string str1 = strconv.Quote(str1) // Unquoting the string literals unqStr1, _ := strconv.Unquote(str1) unqStr2, _ := strconv.Unquote(str2) fmt.Println(unqStr1) // Output: Hello fmt.Println(unqStr2) // Output: Hello world }
Penting Nota:
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak Nilai Rentetan daripada Go String Literal dalam Nod AST?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!