224 lines
4.5 KiB
Plaintext
224 lines
4.5 KiB
Plaintext
# Int literals
|
|
|
|
const (
|
|
i1 = 42
|
|
i2 = 4_2
|
|
i3 = 0600
|
|
i4 = 0_600
|
|
i5 = 0o600
|
|
i6 = 0O600
|
|
i7 = 0xBadFace
|
|
i8 = 0xBad_Face
|
|
i9 = 0x_67_7a_2f_cc_40_c6
|
|
i10 = 170141183460469231731687303715884105727
|
|
i11 = 170_141183_460469_231731_687303_715884_105727
|
|
)
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,SpecList(
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number))))
|
|
|
|
# Float literals
|
|
|
|
const (
|
|
f1 = 0.
|
|
f2 = 72.40
|
|
f3 = 072.40
|
|
f4 = 2.71828
|
|
f5 = 1.e+0
|
|
f6 = 6.67428e-11
|
|
f7 = 1E6
|
|
f8 = .25
|
|
f9 = .12345E+5
|
|
f10 = 1_5.
|
|
f11 = 0.15e+0_2
|
|
f12 = 0x1p-2
|
|
f13 = 0x2.p10
|
|
f14 = 0x1.Fp+0
|
|
f15 = 0X.8p-0
|
|
f16 = 0X_1FFFP-16
|
|
)
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,SpecList(
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number))))
|
|
|
|
# Rune literals
|
|
|
|
const (
|
|
a = '0'
|
|
b = '\''
|
|
c = '\\'
|
|
c = '\n'
|
|
c = '\u0000'
|
|
c = '\U01234567'
|
|
)
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,SpecList(
|
|
ConstSpec(DefName,Rune),
|
|
ConstSpec(DefName,Rune),
|
|
ConstSpec(DefName,Rune),
|
|
ConstSpec(DefName,Rune),
|
|
ConstSpec(DefName,Rune),
|
|
ConstSpec(DefName,Rune))))
|
|
|
|
# Imaginary literals
|
|
|
|
const (
|
|
a = 0i
|
|
b = 0123i
|
|
c = 0o123i
|
|
d = 0xabci
|
|
e = 0.i
|
|
f = 2.71828i
|
|
g = 1.e+0i
|
|
h = 6.67428e-11i
|
|
i = 1E6i
|
|
j = .25i
|
|
k = .12345E+5i
|
|
l = 0x1p-2i
|
|
)
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,SpecList(
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number),
|
|
ConstSpec(DefName,Number))))
|
|
|
|
# String literals
|
|
|
|
const (
|
|
a = "0"
|
|
b = "`\"`"
|
|
c = "\x0c"
|
|
d = "errorstring
|
|
"
|
|
)
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,SpecList(
|
|
ConstSpec(DefName,String),
|
|
ConstSpec(DefName,String),
|
|
ConstSpec(DefName,String),
|
|
ConstSpec(DefName,String),
|
|
⚠(String))))
|
|
|
|
# Slice literals
|
|
|
|
const s1 = []string{}
|
|
|
|
const s2 = []string{"hi"}
|
|
|
|
const s3 = []string{
|
|
"hi",
|
|
"hello",
|
|
}
|
|
|
|
==>
|
|
|
|
SourceFile(
|
|
ConstDecl(const,ConstSpec(DefName,TypedLiteral(SliceType(TypeName),LiteralValue))),
|
|
ConstDecl(const,ConstSpec(DefName,TypedLiteral(SliceType(TypeName),LiteralValue(Element(String))))),
|
|
ConstDecl(const,ConstSpec(DefName,TypedLiteral(SliceType(TypeName),LiteralValue(Element(String),Element(String))))))
|
|
|
|
# Array literals with implicit length
|
|
|
|
const a1 = [...]int{1, 2, 3}
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,ConstSpec(DefName,TypedLiteral(
|
|
SliceType(TypeName),LiteralValue(Element(Number),Element(Number),Element(Number))))))
|
|
|
|
# Map literals
|
|
|
|
const s = map[string]string{
|
|
"hi": "hello",
|
|
"bye": "goodbye",
|
|
}
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,ConstSpec(DefName,TypedLiteral(
|
|
MapType(map,TypeName,TypeName),
|
|
LiteralValue(Element(Key(String),String),Element(Key(String),String))))))
|
|
|
|
# Struct literals
|
|
|
|
const s1 = Person{
|
|
name: "Frank",
|
|
Age: "5 months",
|
|
}
|
|
|
|
const s2 = struct{i int;}{i: 5}
|
|
|
|
const s3 = time.Time{}
|
|
|
|
const g1 = Foo[float64, Bar[int]] { }
|
|
|
|
==>
|
|
|
|
SourceFile(
|
|
ConstDecl(const,ConstSpec(DefName,TypedLiteral(
|
|
TypeName,
|
|
LiteralValue(Element(Key(VariableName),String),Element(Key(VariableName),String))))),
|
|
ConstDecl(const,ConstSpec(DefName,TypedLiteral(
|
|
StructType(struct,StructBody(FieldDecl(FieldName,TypeName))),
|
|
LiteralValue(Element(Key(VariableName),Number))))),
|
|
ConstDecl(const,ConstSpec(DefName,TypedLiteral(QualifiedType(VariableName,TypeName),LiteralValue))),
|
|
ConstDecl(const,ConstSpec(DefName,TypedLiteral(
|
|
ParameterizedType(TypeName,TypeArgs(TypeName,ParameterizedType(TypeName,TypeArgs(TypeName)))),
|
|
LiteralValue))))
|
|
|
|
# Function literals
|
|
|
|
const s1 = func(s string) (int, int) {
|
|
return 1, 2
|
|
}
|
|
|
|
==>
|
|
|
|
SourceFile(ConstDecl(const,ConstSpec(DefName,FunctionLiteral(
|
|
func,Parameters(Parameter(DefName,TypeName)),Parameters(Parameter(TypeName),Parameter(TypeName)),
|
|
Block(ReturnStatement(return,Number,Number))))))
|