Golang strings包的TrimRight和TrimSuffix的區別

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

昨天遇到一個問題,strings.TrimRight("cyeamblog.go", ".go")結果居然是"cyeambl",這讓我百思不得其解。當然,要看官方文檔的解釋:

func TrimRight(s string, cutset string) stringTrimRight returns a slice of the string s, with all trailing Unicode code points contained in cutset removed.

func TrimSuffix(s, suffix string) stringTrimSuffix returns s without the provided trailing suffix string. If s doesn’t end with suffix, s is returned unchanged.

TrimSuffix能看明白,這也是我想要用的,符合我的要求。但是這個TrimRight怎麼看也不知道有啥區別。除了代碼結果不一樣以別的都不清楚了。今天去大Google上面去搜,看到這個標題Is this a bug? strings.TrimRight seems to be cutting too much,樂死我了。我也是這樣想的呀,只不過不好意思上去問。

看了這個算是弄明白了。大概解釋說明一下,TrimRight會把第二個參數字串裡面所有的字元拿出來處理,只要與其中任何一個字元相等,將其刪除。也就是cutset參數所有字元排列組合的形式進行刪除。

最否附上一個例子:

package mainimport ("log""strings")func main() {log.Println(strings.TrimRight("abba", "ba"))log.Println(strings.TrimRight("abcdaaaaa", "abcd"))log.Println(strings.TrimSuffix("abcddcba", "dcba"))}

結果:

2015/08/13 15:56:302015/08/13 15:56:302015/08/13 15:56:30 abcd

本文所涉及到的完整源碼請參考。

######參考文獻1. Is this a bug? strings.TrimRight seems to be cutting too much.. - golang-nuts

原文連結:Golang strings包的TrimRight和TrimSuffix的區別,轉載請註明來源!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.