Go参考手册
go
go/format(格式)
import "go/format"
- 概述
- 索引
- 示例
概述
格式包实现 Go 源的标准格式。
索引
- func Node(dst io.Writer, fset *token.FileSet, node interface{}) error
- func Source(src []byte) ([]byte, error)
示例
节点
包文件
format.go internal.go
func Node(显示源代码)
func Node(dst io.Writer, fset *token.FileSet, node interface{}) error
节点以规范的 gofmt 样式格式化节点并将结果写入 dst。
节点类型必须是* ast.File,* printer.CommentedNode,[] ast.Decl,[] ast.Stmt 或赋值与 ast.Expr,ast.Decl,ast.Spec 或 ast.Stmt 兼容。节点不修改节点。对于表示部分源文件的节点(即,如果节点不是* ast.File 或 *printer.CommentedNode 不是打包一个 *ast.File),导入不会被排序。
该函数可能会返回提前(在写入整个结果之前)并返回格式错误,例如由于错误的 AST。
示例
代码:
const expr = "(6+2*3)/4"
// parser.ParseExpr解析参数并返回
// 相应的ast.Node。
node, err := parser.ParseExpr(expr)
if err != nil {
log.Fatal(err)
}
// 为节点创建FileSet。 由于节点不来
// 从一个真正的源文件,fset将为空。
fset := token.NewFileSet()
var buf bytes.Buffer
err = Node(&buf, fset, node)
if err != nil {
log.Fatal(err)
}
fmt.Println(buf.String())
输出:
(6 + 2*3) / 4
func Source(显示源代码)
func Source(src []byte) ([]byte, error)
source 格式的 src 采用规范的 gofmt 风格,并返回结果或(I/O 或语法)错误。src 应该是一个语法正确的 Go 源文件,或者一个 Go 声明或语句的列表。
如果 src 是部分源文件,则将 src 的前导空格和尾部空格应用于结果(以便它与 src 具有相同的前导和尾随空格),并且结果的缩进量与 src 的第一行相同包含代码。导入不针对部分源文件进行排序。
go相关
Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
主页 | https://golang.org/ |
源码 | https://go.googlesource.com/go |
发布版本 | 1.9.2 |