文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
长度和容积
内置函数 len
和 cap
可以接收多种类型的参数,并且返回一个 int 类型结果值。函数的实现能够确保结果值不会溢出。
Call Argument type Result
len(s) string type string length in bytes
[n]T, *[n]T array length (== n)
[]T slice length
map[K]T map length (number of defined keys)
chan T number of elements queued in channel buffer
cap(s) [n]T, *[n]T array length (== n)
[]T slice capacity
chan T channel buffer capacity
切片的容积底层数组包含的元素个数。在任何情况下都有以下关系:
0 <= len(s) <= cap(s)
nil
切片,map,或者 channel 的长度都为 0。 nil
切片,管道的容积都为 0。
表达式 len(x)
在 s
是字符串常量时也为常量。如果 s
为数组或者指向数组的指针并且表达式 s 不包含 channel
接收器或者函数调用那么 len(s)
和 cap(s)
也是常量;在这个情况下 s 时不能求值的。其他情况下 len
和 cap
不是常量并且 s
是可以求值的。
const (
c1 = imag(2i) // imag(2i) = 2.0 is a constant
c2 = len([10]float64{2}) // [10]float64{2} contains no function calls
c3 = len([10]float64{c1}) // [10]float64{c1} contains no function calls
c4 = len([10]float64{imag(2i)}) // imag(2i) is a constant and no function call is issued
c5 = len([10]float64{imag(z)}) // invalid: imag(z) is a (non-constant) function call
)
var z complex128
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论