Go 문자열 리터럴 코드에서 문자열 값 검색
Go 구문 트리 조작 시나리오에서는 문자열 값을 추출해야 할 수도 있습니다. ast.BasicLit 노드의 리터럴입니다. 이 노드는 문자열 리터럴 유형을 나타내지만 해당 값은 실제 문자열 값이 아닌 Go 코드로 표시됩니다. 이 문서에서는 이 문제에 대한 솔루션을 설명합니다.
해결책: strconv.Unquote()
strconv.Unquote() 함수가 핵심입니다. 이러한 요구를 해결하기 위해. Go 코드로 표현된 문자열 리터럴을 따옴표가 없는 값으로 다시 변환할 수 있습니다. 그러나 strconv.Unquote()는 따옴표(")로 묶인 문자열만 인용 해제한다는 점에 유의하는 것이 중요합니다. 따라서 ast.BasicLit 노드의 문자열 리터럴에 따옴표가 없으면 수동으로 추가해야 합니다. 사용하기 전에 strconv.Unquote().
사용 예:
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 }
중요 참고:
위 내용은 AST 노드의 Go 문자열 리터럴에서 문자열 값을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!