• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

python和go对比字符串的链式处理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、什么是链式处理

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

本案例是一个以字符串列表作为切入,在一个列表中有多个字符串,将每个字符串进行多次处理,最后得到一个新的列表(在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]=s

def 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 main

import (
    "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)
    }

}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
我放弃Python转Go语言的9大理由(附优秀书籍推荐)发布时间:2022-07-10
下一篇:
单链表python和go的代码发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap