国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Go1.18 新特性:新增好用的 Cut 方法

開發 前端
在各種寫業務代碼的時候,大家會常常要處理字符串的內容。常見的像是用郵箱登陸賬號,如果是:eddycjy@gmail.com,那就得根據 @ 來切割,分別取出前和后,來識別用戶名和郵箱地址。

大家好,我是煎魚。

在各種寫業務代碼的時候,大家會常常要處理字符串的內容。常見的像是用郵箱登陸賬號,如果是:eddycjy@gmail.com,那就得根據 @ 來切割,分別取出前和后,來識別用戶名和郵箱地址。

這種需求,在 Go 里寫起來方便嗎?今天就由煎魚帶大家了解。

背景

重復代碼

無獨有偶,Ainar Garipov 在許多項目中遇到了前面我們所提的切割需求。

例如:

idx = strings.Index(username, "@")
if idx != -1 {
name = username[:idx]
} else {
name = username
}

又或是:

idx = strings.LastIndex(address, "@")
if idx != -1 {
host = address[idx+1:]
} else {
host = address
}

經常要反復寫一些繁瑣的代碼,提案提出者表示不愉快。

新提案

實施內容

建議新增 Cut 方法到 strings 標準庫:

func Cut(s, sep string) (before, after string, found bool) {
if i := Index(s, sep); i >= 0 {
return s[:i], s[i+len(sep):], true
}
return s, "", false
}

同步也要在 bytes 標準庫:

func Cut(s, sep []byte) (before, after []byte, found bool)

這樣一來,就可以從原本的:

 eq := strings.IndexByte(rec, '=')
if eq == -1 {
return "", "", s, ErrHeader
}
k, v = rec[:eq], rec[eq+1:]

變成:

 k, v, ok = strings.Cut(rec, "=")
if !ok {
return "", "", s, ErrHeader
}

寫法上會更優雅,在復雜的場景下會更具可讀性和抽象級別。

接受原因

可能就有小伙伴會吐槽了,Go 居然只為了節省 1 行代碼,就搞了個新函數,這還是大道至簡嗎?

實際上,在官方團隊(Russ Cox)介入后,他對 Go 主倉庫進行了分析,搜索了相關類似函數的使用:

  • strings.Index。
  • strings.IndexByte。
  • strings.IndexRune。

統計后,轉換為了可以使用 strings.Cut 的用法,在例子和測試數據之外有 311 個索引調用。

排除了一些確實不需要的,剩下 285 個調用。在這些調用中,有 221 次是最好寫成 Cut 方法的,能更優雅。

也就是說,有現有的 Go 代碼中,有 77% 可以用新增的 Cut 函數寫得更清楚,可讀性和抽象可以做得更好。

Go 主倉庫確實存在如此重復的代碼,他認為這也是非常不可思議的!

總結

Go1.18 的新特性中,Cut 雖然只是新增了一個方法,看上去無傷大雅。

但類似 Cut 方法的用法,在 Go 的主版本中其實已經被發明了兩次。

該新方法的出現,可以同時取代并簡化四個不同的標準庫函數:Index、IndexByte、IndexRune 和 SplitN 中的絕大部分用法。

由于這些原因,最終將 Cut 添加到標準庫中。

你覺得怎么樣?:)

參考

bytes, strings: add Cut


責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2022-02-11 21:01:18

GoNetip網絡庫

2022-01-19 08:51:00

Module工作區Go

2022-02-14 09:32:49

Go場景TryLock

2021-12-02 18:21:49

GoIP 包設計

2021-12-27 18:27:18

GoTryLockJava

2022-02-16 08:59:43

Go方法Title

2022-01-26 00:02:01

Go二進制元信息

2021-12-28 07:20:44

泛型Go場景

2021-12-15 12:59:56

Go泛型版Beta1

2021-12-15 10:23:56

Go 1.18 Bet語言泛型

2022-05-17 08:02:55

GoTryLock模式

2022-03-18 18:00:00

編程語言泛型支持模糊測試

2021-10-18 10:53:26

Go 代碼技術

2021-10-08 15:55:52

Python模塊開發

2022-01-10 11:33:17

Go測試軟件

2022-09-13 09:46:44

Go開發者調查Go 1.18

2021-10-29 10:55:07

Go 泛型語言

2021-12-03 18:29:31

GoAny 泛型

2021-09-05 18:25:30

Go命令倉庫

2022-11-27 23:37:34

Go模式Workspaces
點贊
收藏

51CTO技術棧公眾號

欧美国产日韩a欧美在线观看| 美日韩精品免费视频| 一级日韩一区在线观看| 天天色综合色| 欧美一级片久久久久久久| 日韩成人一区| 欧美不卡视频一区| 国产乱视频在线观看| 一区二区三区四区不卡视频| 邪恶网站在线观看| 91在线观看污| 青青草精品视频在线| 国产揄拍国内精品对白| 欧美日韩亚洲免费| 国产视频一区三区| 国产精品一区二区在线观看| 午夜精品免费| 成人国产亚洲精品a区天堂华泰| 久久综合五月婷婷| 欧美激情一区二区三区成人| 在线免费成人| 色综合久久悠悠| 视频亚洲一区二区| 国内偷自视频区视频综合| 国产精品欧美一区二区三区不卡| 色偷偷亚洲男人天堂| 黄色精品视频| 久久影视免费观看| 果冻天美麻豆一区二区国产| 欧美成人免费大片| 波多野结衣一区二区三区免费视频| 欧美高清视频在线观看| 欧美大胆a级| 国产精品视频自在线| 牛夜精品久久久久久久99黑人| 国产91免费视频| 日产国产高清一区二区三区| 色哺乳xxxxhd奶水米仓惠香| 99热国产精品| 国产二区三区四区| 色综合久久久久| 中文在线字幕免费观看| 日韩电影免费在线观看中文字幕 | 国产一区二三区好的| 中文字幕人妻熟女人妻洋洋| 久久嫩草精品久久久久| 97中文字幕| 在线观看亚洲精品视频| 国产黄色大片在线观看| 日韩在线视频网站| 免费看成人哺乳视频网站| 亚洲精品欧美极品| 久久精品一区二区国产| 精品国产一区三区| 亚洲免费观看高清完整版在线观看熊 | 国产高清精品一区二区三区| 久久天堂精品| 成人一对一视频| 亚洲黄色小说网站| 国产写真视频在线观看| 日韩中文字幕视频在线观看| 日本道不卡免费一区| 欧美一级日本a级v片| youjizz久久| 成人在线小说| 精品久久人人做人人爰| 一区三区自拍| 精品一区二区视频| 91视频观看视频| 天堂中文字幕在线| 在线电影av不卡网址| 日韩电影免费网址| 日本精品福利视频| 欧美视频中文字幕在线| 国产综合色在线观看| 51成人做爰www免费看网站| 久久精品国产精品青草| 日本二区视频| 一区二区三区精品99久久| 久久久久久久久久久9不雅视频| 亚洲欧美国产精品桃花| 亚洲国产精品久久不卡毛片 | 被灌满精子的波多野结衣| 亚洲成人动漫精品| 成人免费毛片嘿嘿连载视频…| 国产在线视频一区| 国产精品一区二区你懂的| 未来日记在线观看| 亚洲色图日韩av| 欧美日韩国产探花| 苍井空浴缸大战猛男120分钟| 欧美在线不卡视频| 蜜臀av一区| 国产成人艳妇aa视频在线| 欧美日韩在线三级| 久久av影视| 日韩在线一级片| 日韩欧美卡一卡二| 99久久精品网站| 久章草在线视频| 亚洲国产成人精品久久久国产成人一区 | 久久xxx视频| 久久综合婷婷综合| 一区二区三区在线视频观看58 | 在线日韩一区| 久久久久久久久久久综合| 欧美日韩在线播放三区| 久久精品国产亚洲blacked| 国产麻豆电影在线观看| 一本久久精品一区二区| 影视先锋久久| 三年中国国语在线播放免费| 亚洲国产精品字幕| 亚洲每日更新| 一二三四在线视频观看社区| 久久精品91久久香蕉加勒比| 久久三级福利| 成年人在线观看网站| 久久琪琪电影院| 99精品一区二区三区| 爱情岛论坛亚洲品质自拍视频网站| 99re国产在线播放| 亚洲高清视频中文字幕| 亚洲精品动态| 国产成+人+亚洲+欧美+综合| 久久免费少妇高潮久久精品99| 97精品电影院| 农村妇女一区二区| www在线观看免费| 国产亚洲日本欧美韩国| 国产一区二区三区免费在线观看| 99在线视频影院| 亚洲欧美综合一区| 亚洲国产欧美自拍| 国产在线精品视频| 中韩乱幕日产无线码一区| 免费观看亚洲视频| 亚洲精品一区中文| 国产乱人伦偷精品视频不卡| 超碰国产一区| 国产欧美日韩网站| 欧美老女人性视频| 久久久久国产精品厨房| 亚洲高清国产拍精品26u| 人妻熟女一二三区夜夜爱| 久久久精品一区| 国产午夜久久久久| 美女av一区| 中文字幕中文字幕在线中文字幕三区 | 45www国产精品网站| 欧美国产日韩在线观看| 国产厕拍一区| 中文字幕97| 国产伦精品一区二区三区照片91| 91成人免费电影| 久久激情中文| 成人国产二区| 欧美丰满熟妇xxxxx| 欧美在线视频网站| 亚洲观看高清完整版在线观看| 欧美人与禽猛交乱配视频| 超鹏97在线| 精品一区二区三区毛片| 超碰91人人草人人干| 黄黄视频在线观看| 久久无码高潮喷水| 日日骚av一区| 国产精品美日韩| 欧美精品一二| 中文字幕在线观看日本| 美媛馆国产精品一区二区| 日韩av一区二区在线观看| 韩国精品一区二区| 国产一区 二区| 蜜桃专区在线| 亚洲一区三区在线观看| 欧美成人午夜视频| 亚洲高清免费视频| 日韩二区三区四区| 精品国产美女a久久9999| 黄色资源在线看| 日本不卡一区| 欧美日韩成人精品| 在线一区二区三区| 国产成人a级片| 国产日韩视频在线| 不卡av免费观看| av网站免费| 亚洲ai欧洲av| 国语自产精品视频在线看一大j8 | 国产一区二区在线观| metart日本精品嫩模| 免费av在线一区二区| 欧美成人一二三| 欧美日韩高清一区| 中文字幕不卡在线观看| 亚洲精品人人| 免费观看在线一区二区三区| 在线看的av网站| 妞干网2018|