Kelebihan Rujukan untuk Kaedah
Ketepatan: Rujukan kepada kaedah adalah lebih ringkas daripada lambda.
Contoh: Nilai kenaikan dalam Peta menggunakan cantuman:
Lambda: (kiraan, incr) -> kiraan + incr
Rujukan untuk kaedah: Integer::sum
Pengurangan Boilerplate
Pengalihan Keluar Parameter Tidak Berguna: Parameter seperti kiraan dan incr dihapuskan.
Contoh:
map.merge(key, 1, Integer::sum);
Salin selepas log masuk
Penggunaan Rujukan yang Cekap untuk Kaedah
-
Dokumentasi Berguna dalam Lambdas: Dalam sesetengah kes, nama parameter dalam lambdas boleh memberikan dokumentasi yang berguna.
-
Penukaran Lambdas kepada Kaedah: Jika lambda terlalu kompleks, ekstrak kod kepada kaedah yang berasingan dan gunakan rujukan kepada kaedah itu.
IDE dan Rujukan untuk Kaedah
-
Cadangan IDE: IDE sering mencadangkan menggantikan lambda dengan rujukan kepada kaedah.
-
Penerimaan Cadangan: Secara umumnya, terima cadangan, tetapi nilai mengikut kes demi kes.
Pengecualian dan Pertimbangan
-
Lambda yang Lebih Ringkas: Kadangkala lambda lebih ringkas daripada rujukan kaedah.
- Contoh dengan Kelas:
-
Rujukan untuk kaedah: GoshThisClassNameIsHumongous::action
-
Lambda: () -> tindakan()
-
Fungsi Identiti: Function.identity() lwn. x -> x
Jenis Rujukan untuk Kaedah
-
Statik: Integer::parseInt (lambda: str -> Integer.parseInt(str))
-
Terhad: Instant.now()::isAfter (lambda: t -> Instant.now().isAfter(t))
-
Tidak terhad: Rentetan::toLowerCase (lambda: str -> str.toLowerCase())
-
Pembina Kelas: Peta Pokok::baharu (lambda: () -> Peta Pokok baharu)
-
Pembina Tatasusunan: int[]::baharu (lambda: len -> int baharu[len])
Kesimpulan
Keutamaan untuk Rujukan Kaedah: Gunakan rujukan kaedah apabila ia lebih pendek dan lebih jelas daripada lambda.
Penggunaan Lambdas: Lebih suka lambda jika ia lebih ringkas atau menyediakan dokumentasi yang lebih baik.
Atas ialah kandungan terperinci Item Lebih suka rujukan kepada kaedah berbanding lambdas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!