Maison >développement back-end >Golang >Comment extraire la valeur de chaîne d'un littéral de chaîne Go dans un nœud AST ?
Récupération de la valeur de chaîne à partir du code littéral de chaîne Go
Dans un scénario de manipulation d'arbre de syntaxe Go, vous devrez peut-être extraire la valeur d'une chaîne littéral à partir d’un nœud ast.BasicLit. Bien que ce nœud indique le type littéral de chaîne, sa valeur est représentée sous forme de code Go au lieu de la valeur réelle de la chaîne. Cet article aborde la solution à ce défi.
Solution : strconv.Unquote()
La fonction strconv.Unquote() est la clé pour répondre à ce besoin. Il permet la conversion d'une chaîne littérale représentée sous forme de code Go en sa valeur non citée. Cependant, il est crucial de noter que strconv.Unquote() supprime uniquement les chaînes entre guillemets ("). Ainsi, si la chaîne littérale dans votre nœud ast.BasicLit manque de guillemets, vous devez les ajouter manuellement. avant d'utiliser strconv.Unquote().
Exemple Utilisation :
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 }
Remarques importantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!