Mempelajari contoh ungkapan lambda dalam Java
Sumber:
Sederhana Dalam artikel ini, kita akan melihat ungkapan lambda, asas pengaturcaraan berfungsi di Jawa.
Sintaks Ungkapan Lambda
Sintaks ungkapan lambda adalah intuitif, mudah difahami dan mudah digunakan. Ungkapan lambda terdiri daripada:
- parameter input
- anak panah pengendali
- blok ungkapan/pernyataan
Format umum ialah:
<input-params> -> <function-code>
Contoh ungkapan lambda
Ungkapan Lambda paling baik difahami melalui contoh, jadi mari kita lihat beberapa daripadanya.
1. Tidak menerima input dan tidak mengembalikan output
Ungkapan lambda yang ringkas tidak mengambil sebarang input dan tidak mengembalikan sebarang output—ia sebenarnya hanya blok kod yang berjalan tanpa sebarang konteks.
() -> System.out.println("Here I am!");
Menentukan
() pada permulaan, dalam kedudukan parameter input, bermakna tiada parameter diluluskan (seperti kurungan kosong yang mengikut kaedah yang tidak mempunyai parameter).
2. Menerima input tunggal, tidak mengembalikan output
Untuk membuat ungkapan lambda mengambil parameter, kami meletakkannya dalam kedudukan parameter input:
name -> System.out.println("Here you are too, " + name + "!");
CATATAN : Jika kita mempunyai satu parameter input, kita boleh meninggalkan kurungan. Kami juga boleh menentukan (nama), ini boleh diterima sepenuhnya.
3. Menerima berbilang input, tidak mengembalikan output
Apabila kita menghantar berbilang parameter input kepada ungkapan lambda, kita mesti:
- sertakan parameter dalam kurungan
- gunakan koma untuk memisahkan antara mereka
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");
4. Mengandungi berbilang pernyataan dalam bahagian kod
Menyimpan ungkapan lambda dalam pernyataan satu baris dianggap sebagai amalan yang baik. Tetapi anda juga boleh menggunakan berbilang baris:
() -> {
System.out.println("The owl and the pussycat went to sea");
System.out.println("in a beautiful pea green boat");
}
5. Jenis pemulangan tidak pernah dinyatakan
Seperti yang anda mungkin perasan, semasa mentakrifkan ungkapan lambda, tiada jenis pulangan ditentukan. Berikut ialah contoh:
() -> System.out.println("I don't return anything!")
Dan satu lagi:
() -> "I return this String!"
Kedua-dua contoh kod adalah hampir sama, tetapi lambda kedua mengembalikan rentetan. Sila ingat perkara ini apabila menggunakannya. Sudah tentu, pengkompil akan memahami perbezaan antara mereka melalui penggunaan bersyarat deskriptor fungsi.
6. Jenis inferens digunakan secara automatik jika boleh
Untuk menentukan jenis, pengkompil akan menggunakan inferens jenis. Untuk melakukan ini, ia melihat konteks pelaksanaan ungkapan lambda. Bagi pembangun, ini bermakna mereka tidak perlu risau tentang menghantar kepada jenis tertentu.
7. Notasi Deskriptor Fungsi
Apabila kita berfikir tentang jenis ungkapan lambda yang boleh ditetapkan, adalah sangat berguna untuk menggunakan deskriptor fungsi. Pemegang fungsi pada asasnya ialah tandatangan kaedah yang disediakan oleh ungkapan (atau kaedah) lambda. Sintaksnya hampir sama dengan ungkapan lambda, kecuali bahagian kod, terdapat bahagian jenis output. Berikut ialah contoh:
<input-parameter-types> -> <output-parameter-type>
Contoh deskriptor fungsi
Berikut ialah beberapa contoh deskriptor fungsi:
() -> () Kaedah yang tidak mengambil parameter input dan tidak mengembalikan nilai.
(String) -> () Kaedah yang menerima parameter input dan tidak mengembalikan nilai.
() -> (int, float) Kaedah yang tidak mengambil parameter input dan mengembalikan
int dan
float(int[]) -> .
(SortedMap<Character, Integer>) Kaedah yang mengambil tatasusunan
int dan mengembalikan
SortedMap daripada
Character kepada
Integer . Mempunyai deskriptor fungsi memudahkan untuk menilai keserasian jenis apabila mempertimbangkan jenis sasaran yang boleh kita gunakan untuk ungkapan lambda.
Kesimpulan
Seperti yang anda lihat, ungkapan lambda ialah cara yang kemas dan mudah untuk merangkum tingkah laku. Ia adalah salah satu asas paradigma pengaturcaraan berfungsi yang diperkenalkan di Java dengan keluaran JDK 8.
7 Ciri IntelliJ IDEA yang Paling Diremehkan
Sumber:
Pengaturcaraan Lebih Baik Sukar untuk dipercayai, tetapi bertahun-tahun kemudian saya masih bertemu orang yang tidak mengetahui tentang ciri hebat ini dalam IntelliJ IDEA.
1.Cari apa sahaja
Agak sukar untuk mengingati setiap kombinasi kekunci dan menjejaki semua yang IntelliJ IDEA boleh lakukan. Inilah sebabnya saya sering menggunakan carian dalam IntelliJ IDEA. Ini membantu saya mencari item menu, alatan, tetapan dan juga fail yang saya perlukan di satu tempat.
2. Tahu di mana anda berada
Sebelum saya menemui ciri ini, saya menggunakan butang "Pilih Fail Terbuka" untuk memaparkan fail yang sedang diedit dalam pokok projek.
Sekarang IntelliJ IDEA melakukan ini untuk saya. Ini bukan pilihan lalai, jadi anda perlu menetapkannya untuk setiap projek baharu atau sedia ada.
3. Pengoptimuman SQL
Adakah anda tahu bahawa pemalam pangkalan data lalai dalam IDE anda adalah lebih daripada pelaksana SQL yang mudah? Memandangkan fakta bahawa lapisan kegigihan (I/O) sentiasa bahagian paling perlahan dalam aplikasi, saya sentiasa memastikan bahawa pertanyaan SQL saya mempunyai pelan pelaksanaan yang baik apabila bekerja dengan pangkalan data hubungan.
4. Penyuntingan berbilang talian
Anda mungkin pernah menggunakan ciri ini dalam Editor Teks Sublime sebelum ini.
5. Undur / Hadapan
Saya sebenarnya sering kembali ke tempat saya sebelum ini dengan menekan butang belakang atau ke hadapan.
Pergi ke belakang/ke hadapan: ⌥⌘+anak panah kiri/kanan (Ctrl+Alt+anak panah kiri/kanan untuk Win/Linux). Untuk membuka fail terbaharu, tekan ⌘E (Ctrl+E untuk Win/Linux).
6. Penanda buku
Saya menanda buku bahagian penting kod supaya saya boleh merujuknya dengan cepat pada bila-bila masa.
Untuk pergi ke penanda halaman, tekan ⌃+<number> (Ctrl+<number> untuk Win/Linux). Saya akan katakan dengan segera bahawa saya tidak menggunakan lebih daripada tiga penanda halaman pada satu masa, kerana kemudiannya menjadi sukar untuk mengingati kegunaannya.
7. Satu editor untuk segala-galanya
Saya pernah membuka editor teks lain seperti Visual Studio Code atau Sublime untuk menyimpan bahagian kod, JSON, XML, dan kemudian memautkannya. Tetapi ini bukan sebahagian daripada pangkalan kod (projek), dan IntelliJ IDEA dengan jelas mengingatkan anda tentang perkara ini apabila anda cuba mencipta atau mengedit sesuatu seperti ini. Kemudian saya melihat salah seorang rakan sekerja saya menggunakan Coretan dan menyedari betapa geniusnya ia.
Fail Coretan baharu: ⇧⌘N (Shift+Ctrl+N untuk Win/Linux). Coretan tersedia dan disegerakkan merentas semua tetingkap projek anda. Saya sering menggunakannya untuk memeriksa dan memformat beberapa JSON atau SQL yang saya dapat dari tempat lain.
Resipi rahsia saya
Ais pada kek ialah ciri yang menjimatkan banyak masa menaip saya setiap hari:
Tabnine ialah pemalam JetBrains untuk menyusun kod Intellij IDEA berkuasa AI. Ia percuma buat masa ini, tetapi cepat, saya rasa ia tidak akan bertahan lama.
GO TO FULL VERSION