代码拉取完成,页面将自动刷新
package num
// Align data alignment
//
// a 通常是默认值
func Align[E BaseType](x []E, a E, n int) []E {
return v2Align[E](x, a, n)
}
func v1Align[E BaseType](x []E, a E, length int) []E {
n := len(x)
if n == length {
return x
}
if n > length {
// 截断, 需要注意T类型的变化, 如果是指针, 需要防止内存泄露
d := x[0:length]
// 多余的元素置为nil
//for i:= n; i < length; i++ {
// x[i] = nil
//}
return d
}
// 扩展内存
d := make([]E, length)
m := copy(d, x)
// m 和 n 应该是相等
for i := m; i < length; i++ {
d[i] = a
}
return d
}
func v2Align[E BaseType](x []E, a E, n int) []E {
m := len(x)
if m == n {
return x
}
if m > n {
// 截断
return x[:n]
}
// 扩展内存
d := make([]E, n)
copy(d, x)
RepeatInto(d[m:], a, n-m)
return d
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。