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 ?

Comment extraire la valeur de chaîne d'un littéral de chaîne Go dans un nœud AST ?

Dec 07, 2024 pm 04:51 PM

How to Extract the String Value from a Go String Literal in an AST Node?

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
}
Copier après la connexion

Remarques importantes :

  • strconv.Unquote() annule uniquement les chaînes entre guillemets.
  • Si la chaîne littérale contient des caractères spéciaux (par exemple, des sauts de ligne), strconv.Quote() doit être utilisé avant strconv.Unquote() pour une manipulation correcte.
  • Les valeurs de retour _ dans l'exemple sont ignorées par souci de concision ; de manière appropriée dans des cas d'utilisation pratiques.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD
Musée à deux points: toutes les expositions et où les trouver
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit