Membandingkan Lambdas: Pelaksanaan dan Tafsiran
Masalahnya:
Diberikan senarai objek ditakrifkan menggunakan ungkapan lambda, adakah mungkin untuk memeriksa dan membandingkannya untuk kesaksamaan?
Pertimbangan Pelaksanaan:
Dari perspektif pelaksanaan, lambda tidak menangkap dinilai pada masa yang sama tapak tangkapan menghasilkan contoh yang sama, yang boleh dibandingkan menggunakan kesamaan rujukan. Walau bagaimanapun, ungkapan lambda berbeza yang ditangkap di tapak berbeza mungkin dipetakan ke kelas sintetik yang berbeza.
Implikasi Spesifikasi:
Spesifikasi bahasa hanya menjamin bahawa hasil penilaian ungkapan lambda ialah contoh antara muka fungsi sasaran. Ia tidak menyatakan identiti atau penyamaran hasil. Fleksibiliti ini membolehkan pelaksanaan mengoptimumkan prestasi dengan tidak mencipta kejadian unik untuk setiap penilaian lambda.
Kesamaan Rujukan Kaedah:
Rujukan kaedah mungkin menyediakan senario praktikal untuk mengubah takrifan kesaksamaan untuk menyokong penggunaan sebagai pendengar. Ini sedang dipertimbangkan untuk semakan masa hadapan.
Penilaian Mendalam:
Menentukan kesamaan dua lambda memerlukan membandingkan fungsi tingkah laku mereka, hujah yang ditangkap dan antara muka berfungsi ditukar kepada. Walau bagaimanapun, mendapatkan maklumat ini untuk lambda yang tidak boleh bersiri boleh mencabar.
Keputusan Reka Bentuk:
Kumpulan Pakar Java membuat kesimpulan bahawa mendedahkan maklumat untuk perbandingan kesamaan lambda adalah tidak berbaloi penalti prestasi untuk majoriti pengguna. Walau bagaimanapun, kemungkinan untuk menambah baik perwakilan toString() masih terbuka untuk perbincangan masa hadapan.
Atas ialah kandungan terperinci Bolehkah Lambdas Dibandingkan untuk Kesaksamaan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!