JavaRush /Blog Java /Random-MS /Coffee break #150. Mari kita kaji contoh ungkapan lambda ...

Coffee break #150. Mari kita kaji contoh ungkapan lambda di Jawa. 7 Ciri IntelliJ IDEA yang Paling Diremehkan

Diterbitkan dalam kumpulan

Mempelajari contoh ungkapan lambda dalam Java

Sumber: Sederhana Dalam artikel ini, kita akan melihat ungkapan lambda, asas pengaturcaraan berfungsi di Jawa. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 1

Sintaks Ungkapan Lambda

Sintaks ungkapan lambda adalah intuitif, mudah difahami dan mudah digunakan. Ungkapan lambda terdiri daripada:
  1. parameter input
  2. anak panah pengendali
  3. 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. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 2

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. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 3Sekarang IntelliJ IDEA melakukan ini untuk saya. Ini bukan pilihan lalai, jadi anda perlu menetapkannya untuk setiap projek baharu atau sedia ada. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 4

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. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 5

4. Penyuntingan berbilang talian

Anda mungkin pernah menggunakan ciri ini dalam Editor Teks Sublime sebelum ini. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 6

5. Undur / Hadapan

Saya sebenarnya sering kembali ke tempat saya sebelum ini dengan menekan butang belakang atau ke hadapan. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 7Pergi 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. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 8Untuk 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. Coffee break #150.  Mari kita kaji contoh ungkapan lambda di Jawa.  7 Ciri IntelliJ IDEA yang Paling Diremehkan - 9Fail 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.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION