contraint
constraint
https://pkg.go.dev/go/build/constraint@go1.20.1
Package constraint implements parsing and evaluation of build constraint lines. See https://golang.org/cmd/go/#hdr-Build_constraints for documentation about build constraints themselves.
This package parses both the original “// +build” syntax and the “//go:build” syntax that was added in Go 1.17. See https://golang.org/design/draft-gobuild for details about the “//go:build” syntax.
常量
This section is empty.
变量
This section is empty.
函数
func IsGoBuild
1
| func IsGoBuild(line string) bool
|
IsGoBuild reports whether the line of text is a “//go:build” constraint. It only checks the prefix of the text, not that the expression itself parses.
func IsPlusBuild
1
| func IsPlusBuild(line string) bool
|
IsPlusBuild reports whether the line of text is a “// +build” constraint. It only checks the prefix of the text, not that the expression itself parses.
func PlusBuildLines
1
| func PlusBuildLines(x Expr) ([]string, error)
|
PlusBuildLines returns a sequence of “// +build” lines that evaluate to the build expression x. If the expression is too complex to convert directly to “// +build” lines, PlusBuildLines returns an error.
类型
type AndExpr
1
2
3
| type AndExpr struct {
X, Y Expr
}
|
An AndExpr represents the expression X && Y.
(*AndExpr) Eval
1
| func (x *AndExpr) Eval(ok func(tag string) bool) bool
|
(*AndExpr) String
1
| func (x *AndExpr) String() string
|
type Expr
1
2
3
4
5
6
7
8
9
10
11
| type Expr interface {
// String returns the string form of the expression,
// using the boolean syntax used in //go:build lines.
String() string
// Eval reports whether the expression evaluates to true.
// It calls ok(tag) as needed to find out whether a given build tag
// is satisfied by the current build configuration.
Eval(ok func(tag string) bool) bool
// contains filtered or unexported methods
}
|
An Expr is a build tag constraint expression. The underlying concrete type is *AndExpr, *OrExpr, *NotExpr, or *TagExpr.
func Parse
1
| func Parse(line string) (Expr, error)
|
Parse parses a single build constraint line of the form “//go:build …” or “// +build …” and returns the corresponding boolean expression.
type NotExpr
1
2
3
| type NotExpr struct {
X Expr
}
|
A NotExpr represents the expression !X (the negation of X).
(*NotExpr) Eval
1
| func (x *NotExpr) Eval(ok func(tag string) bool) bool
|
(*NotExpr) String
1
| func (x *NotExpr) String() string
|
type OrExpr
1
2
3
| type OrExpr struct {
X, Y Expr
}
|
An OrExpr represents the expression X || Y.
(*OrExpr) Eval
1
| func (x *OrExpr) Eval(ok func(tag string) bool) bool
|
(*OrExpr) String
1
| func (x *OrExpr) String() string
|
type SyntaxError
1
2
3
4
| type SyntaxError struct {
Offset int // byte offset in input where error was detected
Err string // description of error
}
|
A SyntaxError reports a syntax error in a parsed build expression.
(*SyntaxError) Error
1
| func (e *SyntaxError) Error() string
|
type TagExpr
1
2
3
| type TagExpr struct {
Tag string // for example, "linux" or "cgo"
}
|
A TagExpr is an Expr for the single tag Tag.
(*TagExpr) Eval
1
| func (x *TagExpr) Eval(ok func(tag string) bool) bool
|
(*TagExpr) String
1
| func (x *TagExpr) String() string
|