zoukankan      html  css  js  c++  java
  • Go Example--组合函数

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func Index(vs []string, t string) int {
    	for i, v := range vs {
    		if v == t {
    			return i
    		}
    	}
    	return -1
    }
    
    func Include(vs []string, t string) bool {
    	return Index(vs, t) >= 0
    }
    
    func Any(vs []string, f func(string) bool) bool {
    	for _, v := range vs {
    		if f(v) {
    			return true
    		}
    	}
    	return false
    }
    
    func All(vs []string, f func(string) bool) bool {
    	for _, v := range vs {
    		if !f(v) {
    			return false
    		}
    	}
    	return true
    }
    
    func Filter(vs []string, f func(string) bool) []string {
    	vsf := make([]string, 0)
    	for _, v := range vs {
    		if f(v) {
    			vsf = append(vsf, v)
    		}
    	}
    	return vsf
    }
    
    func Map(vs []string, f func(string) string) []string {
    	vsm := make([]string, len(vs))
    	for i, v := range vs {
    		vsm[i] = f(v)
    	}
    	return vsm
    }
    
    func main() {
    	var strs = []string{"peach", "apple", "pear", "plum"}
    	//组合函数的使用
    	fmt.Println(Index(strs, "pear"))
    	fmt.Println(Include(strs, "grape"))
    	fmt.Println(Any(strs, func(v string) bool { return strings.HasPrefix(v, "p") }))
    	fmt.Println(All(strs, func(v string) bool { return strings.HasPrefix(v, "p") }))
    	fmt.Println(Filter(strs, func(v string) bool { return strings.Contains(v, "e") }))
    	fmt.Println(Map(strs, strings.ToUpper))
    }
    
  • 相关阅读:
    Idea14 生成webservices
    第10组 Beta冲刺(4/4)
    2019 SDN上机第7次作业
    第10组 Beta冲刺(3/4)
    第10组 Beta冲刺(2/4)
    第10组 Beta冲刺(1/4)
    2019 SDN上机第6次作业
    SDN课程阅读作业(2)
    2019 SDN上机第5次作业
    第10组 Alpha冲刺(4/4)
  • 原文地址:https://www.cnblogs.com/promenader/p/9858416.html
Copyright © 2011-2022 走看看