英文:
One-liner for creating struct with blank fields?
问题
我有一个带有空白字段的结构体:
type Foo struct {
a uint32
b uint32
c uint32
_ uint32 // 填充字段
}
对于没有空白字段的结构体,我喜欢使用一行初始化的方式。但是,对于带有空白字段的类型,似乎无法这样做:
Foo{1,2,3} // 结构体初始化器中的值过少
Foo{1,2,3,0} // 无法引用空白字段或方法
Foo{1,2,3,_} // 无法使用 _ 作为值
为了保持简洁的语法,我必须给未使用的字段命名吗?
英文:
I have a struct with blank fields:
type Foo struct {
a uint32
b uint32
c uint32
_ uint32 //padding
}
For structs without blank fields I enjoy using one-liner initialization. But, I cannot seem to do this for types with blank fields:
Foo{1,2,3} // too few values in struct initializer
Foo{1,2,3,0} // cannot refer to blank field or method
Foo{1,2,3,_} // cannot use _ as value
To keep the nice syntax, must I name the unused field?
答案1
得分: 3
你可以指定字段
f := Foo{a: 1, b: 2, c: 3}
fmt.Println(f) //{1 2 3 0}
英文:
You could specify the fields
f := Foo{a: 1, b: 2, c: 3}
fmt.Println(f) //{1 2 3 0}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论