GO语言"go/format"包中"Node"函数的用法及代码示例。
用法:
func Node(dst io.Writer, fset *token.FileSet, node any) error
节点以规范的 gofmt 样式格式化节点并将结果写入 dst。
节点类型必须是 *ast.File、*printer CommentedNode []ast.Decl、[]ast.Stmt 或 assignment-compatible 到 ast.Expr、ast.Decl、ast.Spec 或 ast.Stmt。节点不修改节点。对于表示部分源文件的节点(例如,如果节点不是 *ast.File 或 *printer CommentedNode 不包装 *ast.File),导入不会排序。
该函数可能会提前返回(在写入整个结果之前)并返回格式错误,例如由于 AST 不正确。
例子:
package main
import (
"bytes"
"fmt"
"go/format"
"go/parser"
"go/token"
"log"
)
func main() {
const expr = "(6+2*3)/4"
// parser.ParseExpr parses the argument and returns the
// corresponding ast.Node.
node, err := parser.ParseExpr(expr)
if err != nil {
log.Fatal(err)
}
// Create a FileSet for node. Since the node does not come
// from a real source file, fset will be empty.
fset := token.NewFileSet()
var buf bytes.Buffer
err = format.Node(&buf, fset, node)
if err != nil {
log.Fatal(err)
}
fmt.Println(buf.String())
}
输出:
(6 + 2*3) / 4
相关用法
- GO NotifyContext用法及代码示例
- GO Notify用法及代码示例
- GO NotFoundHandler用法及代码示例
- GO NewFromFiles用法及代码示例
- GO NumError用法及代码示例
- GO NewReader用法及代码示例
- GO NewCBCDecrypter用法及代码示例
- GO NewCFBDecrypter用法及代码示例
- GO NewCFBEncrypter用法及代码示例
- GO NewReplacer用法及代码示例
- GO New用法及代码示例
- GO NewGCM用法及代码示例
- GO NewTripleDESCipher用法及代码示例
- GO NewWriter用法及代码示例
- GO NewCBCEncrypter用法及代码示例
- GO NewOFB用法及代码示例
- GO NewTLSServer用法及代码示例
- GO NewTicker用法及代码示例
- GO NewCTR用法及代码示例
- GO NewEncoder用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Node。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。