Amalan terbaik jenis fungsi Go termasuk: konvensyen penamaan, tandatangan fungsi, pengesahan parameter, nilai pulangan dan kod sampel. Cadangan khusus adalah seperti berikut: 1. Gunakan penamaan kes unta untuk menamakan jenis fungsi, dengan antara muka kosong di hujungnya untuk menerima parameter tambahan 2. Gunakan jenis yang jelas, dengan parameter pilihan ditetapkan selepas 3. Gunakan pakej pengesahan Go untuk mengesahkan input; 4. Gunakan tupel untuk mengembalikan nilai berbilang, gunakan antara muka ralat untuk mengembalikan ralat.
Dalam Go, jenis fungsi ialah jenis yang mentakrifkan tandatangan fungsi. Mengikuti amalan terbaik memastikan kebolehbacaan, kebolehselenggaraan dan kebolehgunaan semula kod. Berikut ialah beberapa cadangan:
funcType
. funcType
。interface{}
)作为最后一个参数,以允许传递任何类型的附加参数:funcType func(a int, b float64, opts ...interface{}) (int, error)
。interface{}
),以提高代码的可读性:funcType func(a int, b float64) (int, error)
。...
以接受变长参数列表:funcType func(a int, b float64, opts ...interface{}) (int, error)
。if a < 0 { return 0, errors.New("a must be non-negative") }
。type assertion
来转换和验证参数:func funcType(a int, b float64, opts ...interface{}) (int, error) { if len(opts) > 0 { switch opts[0].(type) { case int: // ... case string: // ... default: return 0, errors.New("invalid option") } } // ... }
funcType func(a int, b float64) (int, error)
。error
funcType func(a int, b float64, opts ...antara muka{ } ) (int, ralat)
. Gunakan jenis eksplisit dan bukannya kad bebas ( Atas ialah kandungan terperinci Apakah amalan terbaik untuk jenis fungsi Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!funcType func(a int, b float64) (int , error)</ kod>. </p>🎜Letakkan parameter pilihan selepas parameter yang diperlukan dan tandakannya <kod>...
untuk menerima senarai parameter panjang boleh ubah: funcType func(a int, b float64, opts .. .interface{}) ( int, ralat)
. 🎜🎜🎜Pengesahan parameter🎜🎜🎜Gunakan pakej pengesahan terbina dalam Go untuk mengesahkan input fungsi. Contohnya: jika a < 0 { return 0, errors.New("a must be non-negative") }
. 🎜🎜Untuk fungsi yang mengandungi antara muka kosong, gunakan taip penegasan
untuk menukar dan mengesahkan parameter: 🎜🎜type NumFuncType func(a, b int) int
func main() {
// 定义函数类型
var numFunc NumFuncType
// 赋值函数
numFunc = func(a, b int) int { return a + b }
// 使用函数
result := numFunc(3, 4)
fmt.Println(result) // 输出:7
}