JavaRush /Java Blog /Random-ID /Rehat kopi #150. Mari kita pelajari contoh ekspresi lambd...

Rehat kopi #150. Mari kita pelajari contoh ekspresi lambda di Java. 7 Fitur IntelliJ IDEA yang Paling Diremehkan

Dipublikasikan di grup Random-ID

Mempelajari contoh ekspresi lambda di Java

Sumber: Medium Pada artikel ini, kita akan melihat ekspresi lambda, dasar pemrograman fungsional di Java. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 1

Sintaks Ekspresi Lambda

Sintaks ekspresi lambda intuitif, mudah dipahami, dan mudah digunakan. Ekspresi lambda terdiri dari:
  1. parameter masukan
  2. panah operator
  3. blok ekspresi/pernyataan
Format umumnya adalah:
<input-params> -> <function-code>

Contoh ekspresi lambda

Ekspresi Lambda paling baik dipahami melalui contoh, jadi mari kita lihat beberapa di antaranya.

1. Tidak menerima masukan dan tidak mengembalikan keluaran

Ekspresi lambda sederhana tidak mengambil masukan apa pun dan tidak mengembalikan keluaran apa pun—secara harfiah hanyalah sebuah blok kode yang berjalan tanpa konteks apa pun.
() -> System.out.println("Here I am!");
Menentukan () di awal, pada posisi parameter input, berarti tidak ada parameter yang diteruskan (seperti tanda kurung kosong yang mengikuti metode yang tidak memiliki parameter).

2. Menerima masukan tunggal, tidak mengembalikan keluaran

Untuk membuat ekspresi lambda mengambil parameter, kami menempatkannya di posisi parameter input:
name -> System.out.println("Here you are too, " + name +  "!");
CATATAN : Jika kita memiliki satu parameter masukan, kita dapat menghilangkan tanda kurung. Kami juga dapat menentukan (nama), ini sepenuhnya dapat diterima.

3. Menerima banyak masukan, tidak menghasilkan keluaran

Saat kita meneruskan beberapa parameter masukan ke ekspresi lambda, kita harus:
  • sertakan parameter dalam tanda kurung
  • gunakan koma untuk memisahkannya
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");

4. Berisi beberapa pernyataan dalam satu bagian kode

Menyimpan ekspresi lambda dalam pernyataan satu baris dianggap sebagai praktik yang baik. Tapi Anda juga bisa menggunakan beberapa baris:
() -> {
  System.out.println("The owl and the pussycat went to sea");
  System.out.println("in a beautiful pea green boat");
}

5. Jenis pengembalian tidak pernah ditentukan

Seperti yang mungkin Anda perhatikan, saat mendefinisikan ekspresi lambda, tidak ada tipe pengembalian yang ditentukan. Berikut ini contohnya:
() -> System.out.println("I don't return anything!")
Dan satu lagi:
() -> "I return this String!"
Kedua contoh kode tersebut hampir sama, tetapi lambda kedua mengembalikan sebuah string. Harap ingat hal ini saat menggunakannya. Tentu saja, kompiler akan memahami perbedaan di antara keduanya melalui penggunaan deskriptor fungsi secara kondisional.

6. Inferensi jenis diterapkan secara otomatis jika memungkinkan

Untuk menentukan tipenya, kompiler akan menggunakan inferensi tipe. Untuk melakukan ini, ia melihat konteks eksekusi ekspresi lambda. Bagi pengembang, ini berarti mereka tidak perlu khawatir untuk melakukan casting ke tipe tertentu.

7. Notasi Deskriptor Fungsi

Saat kita memikirkan tipe ekspresi lambda yang dapat ditetapkan, akan sangat berguna jika menggunakan deskriptor fungsi. Pegangan fungsi pada dasarnya adalah tanda tangan metode yang disediakan oleh ekspresi (atau metode) lambda. Sintaksnya hampir sama dengan ekspresi lambda, hanya saja alih-alih bagian kode, ada bagian tipe keluaran. Berikut ini contohnya:
<input-parameter-types> -> <output-parameter-type>

Contoh deskriptor fungsi

Berikut beberapa contoh deskriptor fungsi: () -> () Suatu metode yang tidak mengambil parameter masukan dan tidak mengembalikan nilai. (String) -> () Metode yang menerima parameter masukan dan tidak mengembalikan nilai. () -> (int, float) Sebuah metode yang tidak mengambil parameter input dan mengembalikan int dan float(int[]) -> . (SortedMap<Character, Integer>) Metode yang mengambil array int dan mengembalikan SortedMap dari Character ke Integer . Memiliki deskriptor fungsi memudahkan untuk mengevaluasi kompatibilitas tipe ketika mempertimbangkan tipe target apa yang dapat kita gunakan untuk ekspresi lambda.

Kesimpulan

Seperti yang Anda lihat, ekspresi lambda adalah cara yang rapi dan sederhana untuk merangkum perilaku. Ini adalah salah satu dasar dari paradigma pemrograman fungsional yang diperkenalkan di Java dengan dirilisnya JDK 8.

7 Fitur IntelliJ IDEA yang Paling Diremehkan

Sumber: Pemrograman Lebih Baik Sulit dipercaya, namun bertahun-tahun kemudian saya masih bertemu orang-orang yang belum mengetahui fitur hebat ini di IntelliJ IDEA.

1. Temukan apa saja

Cukup sulit untuk mengingat setiap kombinasi tombol dan melacak semua yang dapat dilakukan IntelliJ IDEA. Inilah mengapa saya sering menggunakan pencarian di dalam IntelliJ IDEA. Ini membantu saya menemukan item menu, alat, pengaturan, dan bahkan file yang saya perlukan di satu tempat. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 2

2. Ketahui di mana Anda berada

Sebelum saya menemukan fitur ini, saya menggunakan tombol “Pilih File Terbuka” untuk menampilkan file yang sedang diedit di pohon proyek. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 3Sekarang IntelliJ IDEA melakukan ini untuk saya. Ini bukan opsi default, jadi Anda perlu mengaturnya untuk setiap proyek baru atau yang sudah ada. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 4

3. Optimasi SQL

Tahukah Anda bahwa plugin database default di IDE Anda lebih dari sekadar eksekutor SQL sederhana? Mengingat fakta bahwa lapisan persistensi (I/O) selalu menjadi bagian paling lambat dari aplikasi, saya selalu memastikan bahwa kueri SQL saya memiliki rencana eksekusi yang baik ketika bekerja dengan database relasional. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 5

4. Pengeditan multibaris

Anda mungkin pernah menggunakan fitur ini di Sublime Text Editor sebelumnya. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 6

5. Mundur/Maju

Saya sebenarnya sering kembali ke tempat saya sebelumnya dengan menekan tombol kembali atau maju. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 7Mundur/maju: ⌥⌘+panah kiri/kanan (Ctrl+Alt+panah kiri/kanan untuk Win/Linux). Untuk membuka file terbaru, tekan ⌘E (Ctrl+E untuk Win/Linux).

6. Penanda

Saya menandai bagian-bagian penting dari kode sehingga saya dapat merujuknya dengan cepat kapan saja. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 8Untuk membuka bookmark, tekan ⌃+<number> (Ctrl+<number> untuk Win/Linux). Saya akan segera mengatakan bahwa saya tidak menggunakan lebih dari tiga bookmark sekaligus, karena akan menjadi sulit untuk mengingat kegunaannya.

7. Satu editor untuk semuanya

Saya biasa membuka editor teks lain seperti Visual Studio Code atau Sublime untuk menyimpan bagian kode, JSON, XML, dan kemudian menautkannya. Tapi ini bukan bagian dari basis kode (proyek), dan IntelliJ IDEA dengan jelas mengingatkan Anda akan hal ini ketika Anda mencoba membuat atau mengedit sesuatu seperti ini. Kemudian saya melihat salah satu rekan saya menggunakan Snippets dan menyadari betapa jeniusnya itu. Rehat kopi #150.  Mari kita pelajari contoh ekspresi lambda di Java.  7 Fitur IntelliJ IDEA yang Paling Diremehkan - 9File Cuplikan Baru: ⇧⌘N (Shift+Ctrl+N untuk Win/Linux). Cuplikan tersedia dan disinkronkan di semua jendela proyek Anda. Saya sering menggunakannya untuk memeriksa dan memformat beberapa JSON atau SQL yang saya dapatkan dari tempat lain.

Resep rahasiaku

Yang paling menarik adalah fitur yang menghemat banyak waktu mengetik setiap hari: Tabnine adalah plugin JetBrains untuk mengkompilasi kode Intellij IDEA yang didukung AI. Ini gratis untuk saat ini, tapi cepatlah, menurut saya ini tidak akan bertahan lama.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION