博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python和go对比字符串的链式处理
阅读量:5331 次
发布时间:2019-06-14

本文共 1539 字,大约阅读时间需要 5 分钟。

一、什么是链式处理

对数据的操作进行多步骤的处理称为链式处理,链式处理器是一种常见的编程设计,链式处理的开发思想将数据和操作拆分,解耦,让开发者可以根据自己的技术优势和需求,进行系统开发,同时将自己的开发成果共享给其他的开发者。

本案例是一个以字符串列表作为切入,在一个列表中有多个字符串,将每个字符串进行多次处理,最后得到一个新的列表(在go中使用的是切片)

二、python代码

strList=["go scanner",        "go parser",        "go compiler",        "go printer",        "go formater",]def StringProcess(strList,chain):    for i,s in enumerate(strList):        for f in chain:            s=f(s)        strList[i]=sdef removePrefix(s):    return s.lstrip("go")def TrimSpace(s):    return s.strip()def ToUpper(s):    return s.upper()chain=[removePrefix,TrimSpace,ToUpper]StringProcess(strList,chain)print(strList)

三、go代码

package mainimport (    "fmt"    "strings")func StringProcess(list []string,chain []func(string) string){    //遍历每一个字符串    for index,str:=range list{        //第一个需要处理的字符串        result:=str        //遍历每一个处理链        for _, proc:=range chain {            //输入一个字符串进行处理,返回数据作为下一个处理链的输入            result=proc(result)        }        //将结果放回切片        list[index]=result    }}func removePrefix(str string)string{    //移除字符串中go的前缀    return strings.TrimPrefix(str,"go")}func main() {    //待处理的字符串列表    list:=[]string{        "go scanner",        "go parser",        "go compiler",        "go printer",        "go formater",    }    //处理函数链    chain :=[]func(string)string{        removePrefix,        strings.TrimSpace,        strings.ToUpper,    }    //处理字符串    StringProcess(list,chain)    //输出处理好的字符串    for _,str:=range list{        fmt.Println(str)    }}

 

转载于:https://www.cnblogs.com/angelyan/p/11461629.html

你可能感兴趣的文章
Linux主机在LNMP环境中同时运行多个PHP版本
查看>>
玩转Xcode之修改系统生成的注释模板
查看>>
8、二进制中1的个数------------>剑指offer系列
查看>>
深入理解JavaScript系列(13):This? Yes,this!
查看>>
免费素材下载:一套超棒的免费UI套件
查看>>
jmeter中如何使用csv文件并读取数据
查看>>
ASP.NET MVC随记汇总
查看>>
Oracle查询经典
查看>>
$.ajax()方法详解
查看>>
一个view相对于屏幕或者另外一个view 的坐标
查看>>
典型系统~秒杀系统架构优化思路(转)
查看>>
codeforces 710C C. Magic Odd Square(构造)
查看>>
Node.js的UnitTest单元测试
查看>>
互联网业务安全实战
查看>>
[ Servlet / JSP ] J2EE Web Application 中的 JSESSIONID 是什么?
查看>>
MySQL thread pool【转】
查看>>
c++ _int64 转成string
查看>>
线性表类型的实现——————链表映像
查看>>
10.并发包阻塞队列之ArrayBlockingQueue
查看>>
转载 SpringMVC详解(一)------入门实例
查看>>