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

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

當格式字符串來自參數(shù)時,fmt.Printf 中類似“%!s”的錯誤(go 語言)

當格式字符串來自參數(shù)時,fmt.Printf 中類似“%!s”的錯誤(go 語言)

Go
慕容3067478 2023-04-10 10:30:55
只看代碼:(簡單到我不敢相信自己)package logimport "fmt"func P(format string,a ...interface{}){    fmt.Printf(format,a)}在這樣的地方調(diào)用時:log.P("%s,%s,%d","","",0)我收到錯誤:[  %!s(int=0)],%!s(MISSING),%!d(MISSING)但是如果我像這樣直接調(diào)用 fmt.Printf:fmt.Printf("%s,%s,%d","","",0)它完美地工作,非常完美(當然,作為 fmt 的基本使用)。所以問題是:為什么 log.P 不起作用?供參考:我相信這很簡單,但我只是無法通過谷歌找到答案,從來沒有人掉入地獄?或者我只是不知道怎么問,所以我把純代碼放在上面。還是這次我是個超級傻瓜?我今天注冊了 stackoverflow 來回答這個問題。讓我知道我怎么了。盡快...
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

這只是一個小錯誤。您將fmt.Printfwitha作為單個參數(shù)調(diào)用,而事實并非如此。您需要將其作為可變參數(shù)傳遞。


package main


import (

? ? "fmt"

)


func P(format string, a ...interface{}) {

? ? fmt.Printf(format, a)

}


func P2(format string, a ...interface{}) {

? ? fmt.Printf(format, a...)

}


func main() {

? ? P("%s,%s,%d", "", "", 0)

? ? fmt.Println()

? ? P2("%s,%s,%d", "hello", "world", 0)

}



查看完整回答
反對 回復(fù) 2023-04-10
?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

您需要傳遞aPrintf可變參數(shù)并將數(shù)組轉(zhuǎn)換為可變參數(shù),您需要遵循以下表示法:

func?P(format?string,?a?...interface{}){
????fmt.Printf(format,?a...)
}

Go 編程語言規(guī)范

將參數(shù)傳遞給 ... 參數(shù)

如果 f 是具有最終參數(shù)類型 ...T 的可變參數(shù),則在函數(shù)內(nèi)該參數(shù)等同于 []T 類型的參數(shù)。在每次調(diào)用 f 時,傳遞給最終參數(shù)的參數(shù)是一個類型為 []T 的新切片,其連續(xù)元素是實際參數(shù),所有這些參數(shù)都必須可分配給類型 T。因此,切片的長度是參數(shù)綁定到最終參數(shù),并且每個調(diào)用站點可能不同。


查看完整回答
反對 回復(fù) 2023-04-10
  • 2 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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