Editor PHP Zimo di sini untuk memperkenalkan anda kepada serpihan kod biasa: f = Foo(nilai). Apa yang dilakukan oleh kod ini ialah mencipta objek Foo bernama f dan memberikan nilai sebagai parameter kepada pembinanya. Dengan cara ini, kita boleh menggunakan objek Foo dalam program dan mengendalikan serta memprosesnya. Objek Foo mungkin contoh kelas, yang mungkin mempunyai pelbagai sifat dan kaedah yang digunakan untuk melaksanakan fungsi tertentu. Dengan mencipta objek dan lulus parameter, kita boleh memulakan sifat objek secara dinamik mengikut keperluan untuk memenuhi keperluan program. Ini ialah coretan kod yang biasa digunakan yang boleh digunakan dalam banyak senario pengaturcaraan yang berbeza.
Saya menemui pelaksanaan antara muka database/sql.Scanner
, tetapi saya tidak begitu memahaminya?
Boleh disusun
Bahagian yang saya dapat ialah Foo
是一个整数,它有方法 Scan
Scan
方法返回error
,但是如何返回fmt.Errorf("无效的数据库类型:%T %v", value, value)
? Bukankah ini pepijat atau adakah ia?
*f = Foo(value)
是做什么的?当您将此类型传递给 rows.Scan()
时,它会调用 Foo.Scan()
?如果类型是预期的 int64
它将调用自己 Foo(value)
?
type Foo int // Scan implements the database/sql.Scanner interface func (f *Foo) Scan(value interface{}) error { switch value := value.(type) { case int64: *f = Foo(value) default: return fmt.Errorf("Invalid database type: %T %v", value, value) } return nil }
fmt.Errorf(format, args)
返回使用 errors.New(str)
创建的错误值,其中 str
ialah rentetan format (mesej ralat anda).
garis *f = Foo(value)
将 int64
值转换为 Foo
类型,并将其分配给方法接收者(注意 f
ialah penunjuk).
Atas ialah kandungan terperinci Apakah yang dilakukan: *f = Foo(nilai). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!