英文:
Golang blog slices and internals
问题
// Filter函数返回一个新的切片,其中只包含满足f()条件的s的元素
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
我不知道如何使用这个函数,任何帮助将不胜感激。
英文:
// Filter returns a new slice holding only
// the elements of s that satisfy f()
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
I have no i idea how to use this function, any help would be appreciated.
答案1
得分: 1
package main
import "fmt"
// Filter返回一个新的切片,其中只包含满足f()条件的元素
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
func odd(i int) bool {
return i%2 != 0
}
func even(i int) bool {
return !odd(i)
}
func main() {
v := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
fmt.Println(Filter(v, odd))
fmt.Println(Filter(v, even))
}
package main
import "fmt"
// Filter函数返回一个新的切片,其中只包含满足f()条件的元素
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
func odd(i int) bool {
return i%2 != 0
}
func even(i int) bool {
return !odd(i)
}
func main() {
v := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
fmt.Println(Filter(v, odd))
fmt.Println(Filter(v, even))
}
英文:
https://play.golang.org/p/Asc4v08wDO
package main
import "fmt"
// Filter returns a new slice holding only
// the elements of s that satisfy f()
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
func odd(i int) bool {
return i%2 != 0
}
func even(i int) bool {
return !odd(i)
}
func main() {
v := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
fmt.Println(Filter(v, odd))
fmt.Println(Filter(v, even))
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论