Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengekstrak Nilai Rentetan Literal daripada Nod `ast.BasicLit` Go AST?

Bagaimana untuk Mengekstrak Nilai Rentetan Literal daripada Nod `ast.BasicLit` Go AST?

Barbara Streisand
Lepaskan: 2024-12-26 11:45:10
asal
942 orang telah melayarinya

How to Extract the Literal String Value from a Go AST's `ast.BasicLit` Node?

Cara Mendapatkan Nilai Tersurat Rentetan daripada Go AST

Apabila melintasi pepohon sintaks Go untuk mengenal pasti panggilan ke fungsi tertentu yang mengambil rentetan hujah literal, anda mungkin menghadapi nod ast.BasicLit dengan Kind == token.STRING. Walau bagaimanapun, medan nilai nod ini mengandungi sintaks Go dan bukannya nilai rentetan sebenar yang diwakilinya.

Untuk mendapatkan nilai literal rentetan, gunakan fungsi strconv.Unquote(). Walau bagaimanapun, ambil perhatian bahawa fungsi ini hanya menyahtanda rentetan yang disertakan dalam petikan. Jika rentetan dalam ast.BasicLit tidak dipetik, anda mesti menambahkannya secara manual dengan aksara petikan yang sesuai.

Contoh:

package main

import (
    "fmt"
    "go/ast"
    "go/parser"
    "go/token"
    "strconv"
)

func main() {
    fset := token.NewFileSet()
    node, _ := parser.ParseExpr(`` + "Hello World!" + `"`)

    switch node := node.(type) {
    case *ast.BasicLit:
        fmt.Println(strconv.Unquote(node.Value)) // Prints "Hello World!"
    }
}
Salin selepas log masuk

Output :

Hello World!
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nilai Rentetan Literal daripada Nod `ast.BasicLit` Go AST?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan