Mempelajari contoh ekspresi lambda di Java
Sumber:
Medium Pada artikel ini, kita akan melihat ekspresi lambda, dasar pemrograman fungsional di Java.
Sintaks Ekspresi Lambda
Sintaks ekspresi lambda intuitif, mudah dipahami, dan mudah digunakan. Ekspresi lambda terdiri dari:
- parameter masukan
- panah operator
- 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.
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.
Sekarang IntelliJ IDEA melakukan ini untuk saya. Ini bukan opsi default, jadi Anda perlu mengaturnya untuk setiap proyek baru atau yang sudah ada.
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.
4. Pengeditan multibaris
Anda mungkin pernah menggunakan fitur ini di Sublime Text Editor sebelumnya.
5. Mundur/Maju
Saya sebenarnya sering kembali ke tempat saya sebelumnya dengan menekan tombol kembali atau maju.
Mundur/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.
Untuk 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.
File 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.
GO TO FULL VERSION