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);
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.
![Item Dê preferência às referências para métodos em vez dos lambdas](https://img.php.cn/upload/article/000/000/000/172136896124169.jpg)
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!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn