status-go/vendor/github.com/bradfitz/iter/iter.go

31 lines
1.0 KiB
Go
Raw Permalink Normal View History

2022-03-10 09:44:48 +00:00
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package iter provides a syntactically different way to iterate over
// integers. That's it.
//
// This package was intended to be an educational joke when it was
// released in 2014. People didn't get the joke part and started
// depending on it. That's fine, I guess. (This is the Internet.) But
// it's kinda weird. It's one line, and not even idiomatic Go style. I
// encourage you not to depend on this or write code like this, but I
// do encourage you to read the code and think about the
// representation of Go slices and why it doesn't allocate.
package iter
// N returns a slice of n 0-sized elements, suitable for ranging over.
//
// For example:
//
// for i := range iter.N(10) {
// fmt.Println(i)
// }
//
// ... will print 0 to 9, inclusive.
//
// It does not cause any allocations.
func N(n int) []struct{} {
return make([]struct{}, n)
}