Home > Mobile >  How fast is the cap() function in Golang?
How fast is the cap() function in Golang?

Time:09-15

Golang has both len(array) and cap(array). The former returns the length of the array/slice (that being the amount of elements the array has); as I understand it, that function is O(1) However, I don't know the efficiency of the latter; is it O(1) as well?

CodePudding user response:

For slices, both len and cap simply return the corresponding values from the slice header, so they are constant time operations.

For arrays, both len and cap are compile-time constants.

CodePudding user response:

Internal definition of slice types like:

type _slice struct {
    // referencing underlying elements
    elements unsafe.Pointer
    // number of elements and capacity
    len, cap int
}

For slice, it is O(1) to get len or cap field.

len() and cap() of array are evaluated when the program compiling.

For array, it is O(1) to get len or cap field as well.

  • Related