golang strings.TrimLeft 和 strings.TrimPrefix的区别

hewolf · · 5349 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

首先看官方文档介绍

func TrimLeft(s string, cutset string) string{}

TrimLeft返回字符串s的一部分,其中删除了cutset中包含的所有前导Unicode代码点。

func TrimPrefix(s, prefix string) string{}

TrimPrefix返回不包含前缀字符串的s。如果s不以前缀开头,则s不变返回。

理解

TrimPrefix很好理解,就是把前缀字符串去掉,剩下的就是需要返回的
那么TrimLeft怎么理解呢,我来举个例子:

    words := "mongodb://off"
    prefix := "mongodb://"
    fmt.Println(strings.TrimLeft(words, prefix))
    words = "mongodb://xgoff"
    prefix = "mongodb://"
    fmt.Println(strings.TrimLeft(words, prefix))
   输出:
      ff
      xgoff

第一个为什么是ff ?

  • 第一次清掉前缀剩下off
  • 第二次发现o开头的字符串o在包含在prefix里面,去掉
  • 剩下ff,发现不在prefix字符串里面,清除完毕

第二个为什么输出是 xgoff ?

  • 第一次清掉前缀剩下xgoff
  • 剩下以x开头的字符串均不在prefix,清除完毕

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:hewolf

查看原文:golang strings.TrimLeft 和 strings.TrimPrefix的区别

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5349 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传