Dalam Go, fungsi append() membenarkan anda menambahkan elemen pada kepingan jenis yang sama. Walau bagaimanapun, apabila berurusan dengan kaedah yang menerima kepingan hujah berubah jenis ...antara muka{}, menambahkan rentetan secara langsung menggunakan append("beberapa rentetan", v) mengakibatkan ralat.
Untuk berjaya menambah rentetan kepada kepingan hujah pembolehubah, anda perlu menggunakan kepingan nilai antara muka{}. Ini kerana ...antara muka{} membenarkan unsur apa-apa jenis. Untuk mencapai ini, anda boleh membalut rentetan awal dalam kepingan []antara muka{}:
func (l Log) Error(v ...interface{}) { stringInterface := []interface{}{" ERROR "} l.Out.Println(append(stringInterface, v...)) }
Ini membalut rentetan ERROR dalam kepingan []antara muka{}, yang kemudiannya boleh ditambah pada pembolehubah argument slice v.
Berikut ialah contoh:
package main import "fmt" func main() { s := "first" rest := []interface{}{"second", 3} all := append([]interface{}{s}, rest...) fmt.Println(all) }
Output:
[first second 3]
Atas ialah kandungan terperinci Bagaimana untuk Menambahkan Rentetan pada Slice{} Antara Muka Variadik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!