它看起來可以用作可以填充任何型別的串列,但是我不明白語法。為什么有兩組{}?
args := []interface{}{}
args = append(args, check.ID, checkNumber)
err := db.Exec(query, args...).Error
uj5u.com熱心網友回復:
讓我們從內部語法構建到外部語法。按照我的描述中的鏈接獲取每個語法元素的詳細說明。
interface{}是沒有方法的介面的型別規范。這通常稱為空介面。所有型別都滿足空介面。[]interface{}是空介面的一部分。[]interface{}{}是不包含任何元素的空介面切片的復合文字運算式。
第一組{}是介面宣告的一部分。介面中沒有方法。
第二組{}是切片的復合文字運算式的一部分。切片中沒有元素。
作為旁注,問題中的代碼可以簡化為:
args := interface{}{check.ID, checkNumber}
err := db.Exec(query, args...).Error
并進一步:
err := db.Exec(query, check.ID, checkNumber).Error
編譯器自動構造[]interface{}from variadic arguments。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424128.html
標籤:去
