精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go1.24 新特性:更多的迭代器方法、JSON 支持省略零值、終結器的改進等

開發 前端
本次新版本增加的 runtime.AddCleanup? 函數是一個比原有 runtime.SetFinalizer 更靈活、更高效且更不易出錯的終結機制。

大家好,我是煎魚。

今天給大家繼續介紹 Go1.24 的新特性,主要涉及垃圾回收時的注冊函數機制、新增的迭代器方法、JSON 零值的優化。

改進的終結器(finalizer)

本次新版本增加的 runtime.AddCleanup 函數是一個比原有 runtime.SetFinalizer 更靈活、更高效且更不易出錯的終結機制。

AddCleanup 允許為對象附加一個清理函數,該函數會在對象不可達時執行。

例如像如下案例的代碼:

func main() {
 e := newExample(233)
 fmt.Printf("e=%v, type=%T\n", e, e)
}

type Example []byte

func (b Example) String() string {
 return fmt.Sprintf("Example(%d KB)", len(b)/1024)
}

func newExample(size int) *Example {
 b := make([]byte, size*1024)
 for i := range size {
  b[i] = byte(i) % 255
 }
 return (*Example)(&b)
}

如果我們希望在 Example 被垃圾回收時運行一個清理函數,現在可以直接借用 runtime.AddCleanup 就可以很便捷的達到目的了。

引入 runtime.AddCleanup 函數后,如下 Go1.24 的新版本代碼:

func cleanup(created time.Time) {
 fmt.Printf(
  "object is cleaned up! lifetime = %dms\n",
  time.Since(created)/time.Millisecond,
 )
}

func main() {
 e := newExample(233)

 now := time.Now()
 runtime.AddCleanup(e, cleanup, now)
 time.Sleep(10 * time.Millisecond)
 e = nil
 runtime.GC()
 time.Sleep(10 * time.Millisecond)
}

輸出結果:

object is cleaned up! lifetime = 10ms

可以看到該函數順利在 newExample 結束后進行垃圾回收時運行了提前注冊的函數。

slog 增加丟棄標識 Discard

Go1.24 新版本中添加一個包級變量 slog.DiscardHandler(類型為 slog.Handler),用于丟棄所有日志輸出。

提案如下:

圖片圖片

以前想要達到這個目的的話,slog 代碼需要寫成如下這樣:

func main() {
 log := slog.New(
  slog.NewTextHandler(io.Discard, nil),
 )
 log.Info("腦子進煎魚了...")
}

現在新版本后,代碼直接這么寫即可:

func main() {
 log := slog.New(slog.DiscardHandler)
 log.Info("腦子進煎魚了!")
}

增加 strings 標準庫迭代器方法

strings.Lines

Lines 函數簽名:

func Lines(s string) iter.Seq[string]

Lines 返回字符串 s 中換行結束行 \n 的迭代器。如果 s 為空,則迭代器不會產生任何行。如果 s 不以換行結束,則最后生成的行也不會以換行結束。

該迭代器返回一個一次性使用的迭代器。

示例代碼:

func main() {
 s := "腦子\n進\n煎魚了"
 for line := range strings.Lines(s) {
  fmt.Print(line)
 }
}

輸出結果:

腦子
進
煎魚了

strings.SplitSeq

SplitSeq 函數簽名:

func SplitSeq(s, sep string) iter.Seq[string]

SplitSeq 返回用 sep 分隔的 s 的所有子串的迭代器。該迭代器產生的字符串與 Split(s, sep) 返回的字符串相同,但不構造切片。

該迭代器返回一個一次性使用的迭代器。

示例代碼:

func main() {
 s := "腦子-進-煎魚了"
 for part := range strings.SplitSeq(s, "-") {
  fmt.Println(part)
 }
}

輸出結果:

腦子
進
煎魚了

strings.SplitAfterSeq

SplitAfterSeq 函數簽名:

func SplitAfterSeq(s, sep string) iter.Seq[string]

SplitAfterSeq 返回在每個 sep 實例之后分割的 s 子串的迭代器。該迭代器產生的字符串與 SplitAfter(s, sep) 返回的字符串相同,但不需要構造切片。

該迭代器返回一個一次性使用的迭代器。

示例代碼:

func main() {
 s := "腦子-進-煎魚了"
 for part := range strings.SplitAfterSeq(s, "-") {
  fmt.Println(part)
 }
}

輸出結果:

腦子-
進-
煎魚了

strings.FieldsSeq

FieldsSeq 函數簽名:

func FieldsSeq(s string) iter.Seq[string]

根據 unicode.IsSpace 的定義,FieldsSeq 返回圍繞空白字符串分割的 s 子串的迭代器。迭代器產生的字符串與 Fields(s) 返回的字符串相同,但不需要構建切片。

示例代碼:

func main() {
 s := "腦子 進\n煎魚了"
 for part := range strings.FieldsSeq(s) {
  fmt.Println(part)
 }
}

輸出結果:

腦子
進
煎魚了

strings.FieldsFuncSeq

FieldsFuncSeq 函數簽名:

func FieldsFuncSeq(s string, f func(rune) bool) iter.Seq[string]

FieldsFuncSeq 返回圍繞滿足 f(c) 的 Unicode 代碼點運行分割的 s 子串的迭代器。迭代器產生的字符串與 FieldsFunc(s) 返回的字符串相同,但不需要構建切片。

示例代碼:

func main() {
 f := func(c rune) bool {
  return !unicode.IsLetter(c) && !unicode.IsNumber(c)
 }

 s := "腦子,進;煎魚了..."
 for part := range strings.FieldsFuncSeq(s, f) {
  fmt.Println(part)
 }
}

輸出結果:

腦子
進
煎魚了

json.Marshal 支持省略零值

時隔近 4 年,Go 終于在 1.24 中支持 JSON 省略零值。這是很多同學在開發過程中比較煩惱的問題。這回總算是有個解決的口子了。

相關提案:

圖片圖片

以前我們使用 omitempty 標簽時:

type Person struct {
 Name      string    `json:"name"`
 BirthDate time.Time `json:"birth_date,omitempty"`
}

func main() {
 eddycjy := Person{Name: "煎魚"}
 b, err := json.Marshal(eddycjy)
 fmt.Println(string(b), err)
}

輸出結果:

{"name":"煎魚","birth_date":"0001-01-01T00:00:00Z"} <nil>

可以看到 birth_date 是有零值結果的。

在 Go1.24 新版本后,可以使用 omitzero 標簽:

type Person struct {
 Name      string    `json:"name"`
 BirthDate time.Time `json:"birth_date,omitzero"`
}

func main() {
 eddycjy := Person{Name: "煎魚"}
 b, err := json.Marshal(eddycjy)
 fmt.Println(string(b), err)
}

輸出結果:

{"name":"煎魚"} <nil>

可以看到 JSON 后 birth_date 的零值沒有了。只有 name 的值結果。符合使用預期。

總結

這次 Go1.24 還是可以的,帶來了一些比較實用的新特性方法。尤其是像是 JSON 零值等用法,可以有效解決一些小痛點。

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

2025-01-06 09:18:04

2024-12-30 11:05:28

泛型Go類型別名

2024-12-23 08:44:49

2025-03-07 09:12:28

2025-02-12 08:50:22

2025-05-07 08:55:14

GoMap存儲

2025-01-20 08:51:32

2024-09-03 08:49:01

2022-05-05 11:20:08

KubernetesDocker云計算

2024-09-09 08:56:03

2024-11-19 09:10:19

迭代器Go語言

2022-12-09 08:52:51

Go匿名接口

2010-05-13 18:05:34

IIS服務器

2024-08-07 08:51:20

Go優化開發

2025-02-08 11:00:33

2014-12-04 10:47:18

Java 9

2025-06-16 08:54:01

macOS模式版本

2013-05-02 09:14:19

Java 8Java 8的新特性

2022-01-26 09:02:57

GoCut方法

2025-05-26 10:10:00

Go開發testing
點贊
收藏

51CTO技術棧公眾號

亚洲专区欧美专区| 日韩高清在线免费观看| 中文字幕一区二区三区精华液| 成人激情视频小说免费下载| 久久久精品99| 亚洲人成精品久久久| 欧美日韩国产美女| av在线播放天堂| 国产在线观看精品一区| 国产一区二区在线看| 欧美在线精品免播放器视频| 免费看一级黄色| 欧美顶级毛片在线播放| 欧美群妇大交群中文字幕| www.av在线| 免费a级在线播放| 国产精品一区在线| 国产精品video| 国产一级在线观看视频| 国产欧美日韩| 亚洲国产精品va在线| 亚洲欧美自拍另类日韩| 末成年女av片一区二区下载| 亚洲色图欧美偷拍| 日韩aⅴ视频一区二区三区| 亚洲经典一区二区| 精品一区二区日韩| 国产精品va在线播放| 日本在线免费观看| 欧美va亚洲va日韩∨a综合色| 亚洲美女性视频| 国内精品免费视频| 国产日本亚洲| 欧美日本一区二区| www.天天射.com| 国模套图日韩精品一区二区| 亚洲国产视频a| 老司机午夜网站| www.av在线| 欧美经典三级视频一区二区三区| 国产一区二区不卡视频| 成人爽a毛片一区二区| 国产一区二区三区免费观看| 国产精品女人久久久久久| 天天干天天色综合| 老鸭窝亚洲一区二区三区| 97精品视频在线| 日韩手机在线观看| 亚洲日本久久| 91精品国产高清自在线| 欧美成人国产精品高潮| 91精品国产视频| 久久亚洲精品中文字幕冲田杏梨| 女教师淫辱の教室蜜臀av软件| 国产一区二区三区天码| 亚洲天堂av在线播放| 欧美狂猛xxxxx乱大交3| 综合亚洲自拍| 亚洲天堂精品在线| 阿v天堂2014| 日韩精品午夜| 操日韩av在线电影| 久久成人在线观看| 亚洲福利免费| 7777kkkk成人观看| 日日夜夜操视频| 日韩不卡一二三区| 成人精品视频99在线观看免费| 一本一道精品欧美中文字幕| 久久精品久久精品| 国产一区二区在线播放| 国产视频一二三四区| 国产成人精品三级麻豆| 国产精品 日韩| 视频午夜在线| 国产欧美精品区一区二区三区 | 不卡的看片网站| 久草精品电影| av在线免费观看网| 亚洲欧美日韩成人高清在线一区| 日本大胆人体视频| 国产乱码午夜在线视频 | 日韩av黄色网址| 桃子视频成人app| 欧美日韩一级二级三级| 中文字幕乱妇无码av在线| 九九热hot精品视频在线播放| 亚洲女同性videos| 日韩精品一区二区亚洲av性色| 欧美天天视频| 国产成人精彩在线视频九色| 97人妻精品一区二区三区| 国产不卡视频一区| 欧美一区二区福利| 中文在线免费| 色哟哟精品一区| 中文字幕avav| 亚洲精品一级二级三级| 精品国内产的精品视频在线观看| 青娱乐在线视频免费观看| 久久国产毛片| 99久久精品免费看国产一区二区三区| 视频二区在线| 尤物视频一区二区| 手机看片福利日韩| 97久久超碰| 亚洲精品中文字幕有码专区| 一级片一级片一级片| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品电影一区| 男人天堂手机在线观看| 国产精品久久久久三级| 久久精品国产精品亚洲色婷婷| av在线亚洲一区| 亚洲乱码一区av黑人高潮| 九九热最新地址| 日韩成人精品视频| 久久国产精品一区二区三区四区| 精产国品自在线www| 一本一本久久a久久精品综合麻豆| 91精产国品一二三产区别沈先生| 亚州国产精品| 久久久久中文字幕2018| 国产又粗又猛又黄又爽无遮挡| 久久影视一区二区| a级黄色小视频| 2020国产精品小视频| 亚洲欧美日韩爽爽影院| 国产情侣在线视频| 成人网在线播放| 久久久99精品视频| 婷婷久久免费视频| 中文字幕av一区二区三区谷原希美| 欧美一级高潮片| 国产成+人+日韩+欧美+亚洲| 亚洲天堂第一区| 久久久免费人体| 中文字幕综合在线| 亚洲手机在线观看| 国产精品系列在线| 妓院一钑片免看黄大片| 天堂网av成人| 欧美专区国产专区| 污污的视频网站在线观看| 亚洲一区二区三区在线| 国产精品19p| 欧美日韩国产亚洲一区| 91欧美视频网站| 麻豆视频网站在线观看| 欧美精品久久天天躁| 精品少妇一区二区三区密爱| 欧美aaaaaa午夜精品| 水蜜桃亚洲一二三四在线| 欧美大片1688网站| 中文日韩电影网站| 97国产精品久久久| 亚洲欧美激情一区二区| 欧美熟妇另类久久久久久多毛| 亚洲天天综合| 999国产视频| 超碰中文在线| 日韩电影免费观看中文字幕| av黄色在线播放| 94色蜜桃网一区二区三区| 欧美女人性生活视频| 欧美肉体xxxx裸体137大胆| 国产精品精品国产| 男女啪啪在线观看| 欧美电影免费提供在线观看| 精品在线视频免费| 91在线播放网址| 欧美一级黄色片视频| 日韩综合在线| 4444kk亚洲人成电影在线| 成人性生交大片免费看网站| 亚洲精品乱码久久久久久金桔影视 | 中文字幕一区不卡| 中文字幕欧美视频| 国产亚洲精品v| 午夜久久资源| 亚洲午夜精品| 国产91九色视频| 好操啊在线观看免费视频| 精品卡一卡二卡三卡四在线| 日本一区二区三区精品| 国产精品久久久久久一区二区三区| 在线视频一二区| 国产精品最新自拍| 自拍偷拍一区二区三区| 精品精品国产毛片在线看| 日本不卡免费高清视频| 黄黄的网站在线观看| 国产偷亚洲偷欧美偷精品| 中文字幕一区二区三区波野结| 亚洲精品国产成人久久av盗摄 | 精品国自产在线观看| 精品久久久精品| 国产精品99久久久久久成人| 北条麻妃国产九九精品视频| 在线看的黄色网址| 亚洲激精日韩激精欧美精品| 亚洲精品国产一区| 国产精品nxnn| 成人综合网网址| 亚洲wwww| 992tv在线成人免费观看| 秋霞午夜理伦电影在线观看| 精品视频一区在线视频| 国产欧美一级片| 在线精品亚洲一区二区不卡| 五月天综合在线| 日韩美女啊v在线免费观看| 国产艳俗歌舞表演hd| 国产成人av电影在线| 日本超碰在线观看| 美女精品网站| 精品这里只有精品| 欧美日韩精品一本二本三本| 亚洲欧美综合一区| 日韩中文av| 国产精品一区二区三区不卡| 在线高清欧美| 国产精品青草久久久久福利99| 毛片电影在线| 97在线视频一区| 96av在线| 欧美激情一区二区三区高清视频 | 欧美特黄一级视频| 91精品国产综合久久香蕉的特点| 久久国产乱子伦精品| 欧美日韩另类视频| 国产无遮挡裸体免费视频| 亚洲免费看黄网站| 51精品免费网站| 亚洲欧洲www| 手机看片国产日韩| 日本一区二区久久| 日本美女xxx| 国产欧美日韩中文久久| 在线免费看黄视频| 久久久亚洲高清| 亚洲最大成人网站| 久久综合九色综合欧美98 | 色天天色综合| 久久精品人成| 日韩一级电影| 日韩成人在线资源| 欧美亚洲国产精品久久| 日韩欧美在线电影| 欧美军人男男激情gay| 日韩精品久久久| 日韩久久视频| 在线播放豆国产99亚洲| 91超碰成人| 国产在线视频在线| 日韩视频在线一区二区三区| 精品欧美一区免费观看α√| 欧美亚洲视频| 亚洲三级视频网站| 老司机一区二区| 北条麻妃亚洲一区| 成人性视频免费网站| www.超碰97| 国产欧美日本一区视频| 免费黄色国产视频| 一区二区三区四区视频精品免费| 国产一级特黄毛片| 精品色蜜蜜精品视频在线观看| 亚洲第一在线播放| 91成人网在线| 国产精品久久久久毛片| 精品精品国产高清a毛片牛牛| 人妻91麻豆一区二区三区| 亚洲人成免费电影| 蜜桃视频网站在线| 欧美精品福利在线| 欧美freesex| 亚洲jizzjizz日本少妇| 国内精品偷拍| 视频一区亚洲| 黑丝一区二区三区| 久久久久久香蕉| 国产美女精品一区二区三区| 人妻av一区二区| 国产亚洲福利社区一区| 午夜国产福利一区二区| 五月综合激情婷婷六月色窝| japanese国产在线观看| 日韩欧美国产不卡| 高清美女视频一区| 欧美疯狂xxxx大交乱88av| 欧美电影免费观看| 91视频免费在线观看| 国产成人调教视频在线观看| 国产卡一卡二在线| 久久电影一区| 亚洲熟女乱综合一区二区| 91麻豆免费在线观看| 99久久婷婷国产综合| 色哟哟一区二区在线观看| 精品国产无码AV| 中文字幕亚洲第一| 成年女人在线看片| 91在线观看免费高清| 久久av电影| 你真棒插曲来救救我在线观看| 日本v片在线高清不卡在线观看| 午夜福利三级理论电影| 国产精品萝li| 波多野结衣 久久| 亚洲国产成人在线播放| 免费黄网站在线| 国产高清视频一区三区| 久久97久久97精品免视看秋霞| 亚洲午夜激情| 天堂在线一区二区| yy6080午夜| 一区二区欧美视频| 91福利免费视频| 亚洲性猛交xxxxwww| 老司机深夜福利在线观看| 91午夜在线播放| 三区四区不卡| 性chinese极品按摩| 久久免费看少妇高潮| 精品无码久久久久久久| 欧美一区二区三区视频免费| 在线免费观看黄色网址| 国产精品免费小视频| 蜜桃视频欧美| 国产日产欧美视频| 99久久er热在这里只有精品15| 久草中文在线视频| 日韩精品一区二区在线观看| 黄色网页在线看| 91精品久久久久久久久| 日产精品一区二区| 亚洲精品视频导航| 国产欧美日韩在线视频| 色老头一区二区| 一区二区三区天堂av| 午夜精品成人av| 欧美日韩国产精品一卡| 香蕉成人久久| 少妇真人直播免费视频| 日本道色综合久久| 国产精品一区二区婷婷| 国产黑人绿帽在线第一区| 精品国产美女| 杨幂毛片午夜性生毛片| 国产人成一区二区三区影院| 日本三级一区二区三区| 一区二区三区回区在观看免费视频 | 亚洲制服欧美中文字幕中文字幕| 99热这里只有精品在线| 欧美激情第99页| 精品少妇3p| 欧美两根一起进3p做受视频| 国产女同互慰高潮91漫画| 国产孕妇孕交大片孕| 久久国产精品久久久久久| 2021年精品国产福利在线| 国自产拍偷拍精品啪啪一区二区| 97se亚洲国产综合自在线| 精品人妻一区二区三区潮喷在线 | jizz亚洲少妇| 精品三级av在线| 综合日韩av| 亚洲欧洲免费无码| 国产精品亚洲第一区在线暖暖韩国| 久草视频中文在线| 亚洲精品在线91| 日韩欧乱色一区二区三区在线| 黄色影视在线观看| av一区二区不卡| 国内av在线播放| 欧美大片大片在线播放| 日韩美女毛片| 天美一区二区三区| 狠狠色噜噜狠狠狠狠97| www.亚洲资源| 国产一区二区三区无遮挡 | 日韩欧美综合在线视频| 日本在线观看视频| 成人午夜激情网| 亚洲综合国产| 中文字幕电影av| 精品视频在线观看日韩| 日韩成人一区| 天堂…中文在线最新版在线| 亚洲国产精品av| 天天操天天射天天| 国产在线拍偷自揄拍精品| 99视频+国产日韩欧美| 天美传媒免费在线观看| 日韩精品一区二区三区视频在线观看| 性欧美18一19sex性欧美| 日本福利视频网站| 国产精品天干天干在线综合| 韩国av在线免费观看|