2 回答

TA贡献1872条经验 获得超4个赞
编写函数
func markSubPartition(p *Partition) {
if len(p.Partitions) > 0 {
p.SubPartitions = true
for _, part := range p.Partitions {
markSubPartition(part)
}
} else {
p.SubPartitions = false
}}
并像这样循环使用块设备
for _, part := range diskInfo.Blockdevices[0].Partitions {
markSubPartition(part)}
还需要更改您的结构更改分区字段:分区[]*分区希望它有帮助,谢谢!json:"partitions,omitempty"

TA贡献2037条经验 获得超6个赞
由于该标志与 耦合,因此一种选择是删除该字段,并添加一个计算此值的方法:SubPartitionsPartitionsSubPartitions
func (p *Partition) HasSubPartitions() bool {
// note : to check if a slice is empty or not, it is advised to look at
// 'len(slice)' rather than nil (it is possible to have a non-nil pointer
// to a 0 length slice)
return len(p.Partitions) > 0
}
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报