首頁  >  文章  >  後端開發  >  如何處理 fmt.Sprintf 中遺失的替換值?

如何處理 fmt.Sprintf 中遺失的替換值?

Barbara Streisand
Barbara Streisand原創
2024-10-31 11:04:01753瀏覽

How to Handle Missing Replacement Values in fmt.Sprintf?

忽略fmt.Sprintf 中的多餘字段

考慮一個場景,其中Go 程式處理從命令列輸入的字串並使用fmt 。 Sprintf 產生格式化字串。如果表示為tmp_str 的輸入包含佔位符(例如“%s”)並且未提供隨附的替換值,則fmt.Sprintf 將引發錯誤並顯示訊息“EXTRA string=world”,其中“world”是缺少替換。

為了解決此問題並妥善處理輸入可能缺少佔位符的情況,一種方法是要求命令列使用者始終包含「%s」佔位符。這確保了即使沒有為佔位符分配任何值,程式也可以避免出現恐慌。將字串截斷為零長度(如下例所示)將抑制與佔位符關聯的任何輸出:

<code class="go">package main

import "fmt"

func main() {
    tmp_str := "Hello Friends%.0s"
    str := fmt.Sprintf(tmp_str, "")
    fmt.Println(str)
}</code>

輸出:

Hello Friends

透過利用此策略,程式可以忽略傳遞給fmt.Sprintf 的任何多餘替換欄位並保持穩定的行為。

以上是如何處理 fmt.Sprintf 中遺失的替換值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn