Files
learngo/x-tba/slices/exercises/fix-xx-limit-the-backing-array-sharing/solution/api/api.go

25 lines
708 B
Go
Raw Normal View History

2019-03-04 20:30:18 +03:00
package api
var temps = []int{5, 10, 3, 25, 45, 80, 90}
// Read returns a range of temperature readings beginning from
// the `start` until to the `stop`.
func Read(start, stop int) []int {
// Uses a full slice expression to control the length of the
// backing array (or the capacity of the returned slice).
//
// So the next append allocates a new backing array, which
// in turn doesn't overwrite the temps slice's backing array.
// ^^
// ||
// / \
// | |
portion := temps[start:stop:stop]
return portion
}
// All returns all the temperature readings
func All() []int {
return temps
}