第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 1.18 中,strings.Title() 已棄用。現(xiàn)在該用什么?如何?

在 Go 1.18 中,strings.Title() 已棄用?,F(xiàn)在該用什么?如何?

Go
慕絲7291255 2022-11-23 20:11:01
正如此處建議的那樣,人名應(yīng)該大寫John William Smith。我正在用 Golang 編寫一個小軟件,它從用戶的表單輸入中獲取姓氏和名字。在 Go 1.18 之前,我一直在使用:lastname = strings.Title(strings.ToLower(strings.TrimSpace(lastname)))firstname = strings.Title(strings.ToLower(strings.TrimSpace(firstname)))它有效,但現(xiàn)在 Go 1.18已棄用strings.Title()。他們建議golang.org/x/text/cases改用。所以我想我應(yīng)該像這樣更改我的代碼:caser := cases.Title(language.Und)lastname = caser.Title(strings.ToLower(strings.TrimSpace(lastname)))firstname = caser.Title(strings.ToLower(strings.TrimSpace(firstname)))它的工作原理和以前一樣。區(qū)別在于像ijsland這樣的荷蘭語單詞應(yīng)該標(biāo)題為 asIJsland而不是Ijsland。問題在caser := cases.Title(language.Und)我使用的行中,Und因為我不知道要使用什么語言標(biāo)簽。我應(yīng)該使用language.Englishorlanguage.AmericanEnglish或 other 嗎?到目前為止,就像strings.Title()是在使用Und或English?
查看完整描述

4 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗 獲得超9個贊

如文檔strings.Title中所述,已棄用,您應(yīng)該cases.Title改用。


棄用:Title 用于單詞邊界的規(guī)則不能正確處理 Unicode 標(biāo)點符號。請改用 golang.org/x/text/cases。


以下是如何從兩個角度使用它的示例代碼:


// Straightforward approach

caser := cases.Title(language.BrazilianPortuguese)

titleStr := caser.String(str)


// Transformer interface aware approach

src := []byte(s)

dest := []byte(s) // dest can also be `dest := src`

caser := cases.Title(language.BrazilianPortuguese)

_, _, err := caser.Transform(dest, src, true)

請務(wù)必查看transform.Transformer.Transform和cases.Caser以了解每個參數(shù)和返回值的含義,以及該工具的局限性。例如:


Caser 可能是有狀態(tài)的,因此不應(yīng)在 goroutine 之間共享。


關(guān)于language使用什么,您應(yīng)該知道它們在結(jié)果上的差異,除此之外,您應(yīng)該可以隨意選擇。這是煎魚的一份關(guān)于為我清除它的差異的總結(jié):


去游樂場:https ://go.dev/play/p/xp59r1BkC9L


func main() {

    src := []string{

        "hello world!",

        "i with dot",

        "'n ijsberg",

        "here comes O'Brian",

    }

    for _, c := range []cases.Caser{

        cases.Lower(language.Und),

        cases.Upper(language.Turkish),

        cases.Title(language.Dutch),

        cases.Title(language.Und, cases.NoLower),

    } {

        fmt.Println()

        for _, s := range src {

            fmt.Println(c.String(s))

        }

    }

}

輸出如下


hello world!

i with dot

'n ijsberg

here comes o'brian


HELLO WORLD!

? W?TH DOT

'N ?JSBERG

HERE COMES O'BR?AN


Hello World!

I With Dot

'n IJsberg

Here Comes O'brian


Hello World!

I With Dot

'N Ijsberg

Here Comes O'Brian


查看完整回答
反對 回復(fù) 2022-11-23
?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗 獲得超4個贊

到目前為止,就像strings.Title()是在使用UndEnglish?

strings.Title()基于 ASCII工作,cases.Title()基于 Unicode 工作,沒有辦法獲得完全相同的行為。

我應(yīng)該使用 language.English 還是 language.AmericanEnglish 還是其他語言?

language.Englishlanguage.AmericanEnglish而且language.Und似乎都有相同的Title規(guī)則。使用它們中的任何一個都應(yīng)該讓您最接近strings.Title()您將要獲得的原始行為。

使用這個支持 Unicode 的包的全部意義在于它客觀上更正確。因此,請選擇適合您用戶的標(biāo)簽。


查看完整回答
反對 回復(fù) 2022-11-23
?
哆啦的時光機

TA貢獻(xiàn)1779條經(jīng)驗 獲得超6個贊

strings.Title(str)已棄用,應(yīng)更改為cases.Title(language.Und, cases.NoLower).String(str)


package main

import (

    "fmt"

    "strings"

    "golang.org/x/text/cases"

    "golang.org/x/text/language"

)

func main() {

    fmt.Println(strings.Title("abcABC"))                                   // AbcABC

    fmt.Println(cases.Title(language.Und, cases.NoLower).String("abcABC")) // AbcABC

}

游樂場:https ://go.dev/play/p/i0Eqh3QfxTx


查看完整回答
反對 回復(fù) 2022-11-23
?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗 獲得超7個贊

下面是一個簡單的示例,說明如何使用 golang.org/x/text 包將變量中每個字符串值的首字母大寫。


package main


import (

    "fmt"


    "golang.org/x/text/cases"

    "golang.org/x/text/language"

)


func main() {

    sampleStr := "with value lower,  all the letters are lowercase. this is good for poetry perhaps"

    caser := cases.Title(language.English)

    fmt.Println(caser.String(sampleStr))

}

輸出:值較低時,所有字母均為小寫。也許這對詩歌有好處


游樂場示例:https ://go.dev/play/p/_J8nGVuhYC9


查看完整回答
反對 回復(fù) 2022-11-23
  • 4 回答
  • 0 關(guān)注
  • 416 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號