zoukankan      html  css  js  c++  java
  • collection function _ golang

    We often need our programs to perform operations on collection of data, like selecting all items that satisfy a given predicate or mapping all items to a new collection with a custom function.

    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))
    }
    2
    false
    true
    false
    [peach apple pear]
    [PEACH APPLE PEAR PLUM]

    总结 :

      1 : ...

  • 相关阅读:
    关于params
    javascript判断gridview中的checkbox是否选中!
    读取Excel内容,导入数据库多张表!
    转向新页,控制页面大小并传值
    DropDownList分层显示!
    验证输入的是否数字的几种方法
    CentOS 6.5编译安装Nginx1.6.2+MySQL5.5.32+PHP5.3.27
    hdu 2425最短路
    hdu 2207水题
    hdu 3079水题
  • 原文地址:https://www.cnblogs.com/jackkiexu/p/4359666.html
Copyright © 2011-2022 走看看