Golang博客切片和内部机制

huangapple go评论93阅读模式
英文:

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))
}

huangapple
  • 本文由 发表于 2016年9月26日 16:52:58
  • 转载请务必保留本文链接:https://go.coder-hub.com/39698436.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定