Maison >développement back-end >Golang >Comment supprimer les guillemets des littéraux de chaîne Go d'un AST ?
Ne plus citer les littéraux de chaîne Go de l'arbre syntaxique
Lors du parcours d'un arbre syntaxique Go, il peut être nécessaire d'extraire la valeur réelle d'une chaîne littéral représenté comme un nœud ast.BasicLit avec Kind défini sur token.STRING. Cependant, ce nœud contient initialement le code Go représentant la chaîne, et non sa valeur littérale.
Solution :
Pour transformer le code littéral de la chaîne Go en sa valeur réelle, utilisez la fonction strconv.Unquote(). Cette fonction supprime les guillemets d'une chaîne entre guillemets, vous permettant d'obtenir la valeur brute de la chaîne.
Remarque :
strconv.Unquote() ne peut retirer les guillemets que des chaînes entourées de guillemets. guillemets (simples ou doubles). Si la chaîne littérale n'est pas placée entre guillemets, vous devez les ajouter manuellement avant d'utiliser la fonction.
Exemple :
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" } }
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!