首頁 > 後端開發 > Golang > Go 中是否有相當於 Python 的「string.format()」?

Go 中是否有相當於 Python 的「string.format()」?

DDD
發布: 2024-12-16 18:42:10
原創
444 人瀏覽過

Is There a Go Equivalent to Python's `string.format()`?

Go 中Python 的string.format 的等效項

Python 提供了一種名為string.format 的便捷位符格式化字串。 Go 開發人員質疑他們的語言中是否有等效功能。

現有選項

Go 中最簡單的替代方案是 fmt.Sprintf 函數,它允許在格式字串中進行參數替換。但是,它不支援交換參數的順序。

Go 還包含文字/模板包,它提供了更通用的方法。

替代解決方案

使用strings.Replacer

利用 strings.Replacer類型,開發人員可以輕鬆創建自己的格式函數:

package main

import (
    "fmt"
    "strings"
)

func main() {
    file, err := "/data/test.txt", "file not found"

    log("File {file} had error {error}", "{file}", file, "{error}", err)
}

func log(format string, args ...string) {
    r := strings.NewReplacer(args...)
    fmt.Println(r.Replace(format))
}
登入後複製

使用文字/模板

文字/模板包可以透過稍微更詳細的方法進行更多自訂:

package main

import (
    "fmt"
    "os"
    "text/template"
)

func main() {
    file, err := "/data/test.txt", 666

    log4("File {{.file}} has error {{.error}}", map[string]interface{}{"file": file, "error": err})
}

func log4(format string, p map[string]interface{}) {
    t := template.Must(template.New("").Parse(format))
    t.Execute(os.Stdout, p)
}
登入後複製

使用明確參數索引

Go允許在格式字串中使用明確參數索引,這使得可以替換相同的參數

雖然實現細節上存在差異,但Go 提供了Python string.format 的替代解決方案,在字串格式化場景中提供了靈活性和效率。

以上是Go 中是否有相當於 Python 的「string.format()」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板