Istirahat dan Lanjutkan:
Dalam sebuah pembicaraan tentang Scala , Martin Odersky memberi 3 alasan untuk tidak memasukkan istirahat atau melanjutkan slide 22:
- Mereka sedikit penting; lebih baik gunakan banyak fungsi yang lebih kecil.
- Masalah cara berinteraksi dengan penutupan.
- Mereka tidak dibutuhkan!
Dan dia kemudian berkata, "Kita dapat mendukung mereka sepenuhnya di perpustakaan." Pada slide 23, ia memberikan kode yang mengimplementasikanbreak
. Meskipun saya tidak begitu tahu Scala cukup baik untuk memastikan, sepertinya potongan pendek pada slide itu adalah semua yang diperlukan untuk mengimplementasikan break
, dan itu continue
dapat diimplementasikan dalam kode yang sama pendeknya.
Mampu menerapkan hal-hal seperti ini di perpustakaan menyederhanakan bahasa inti.
Dalam 'Pemrograman dalam Scala, Edisi Kedua', oleh Martin Odersky, Lex Spoon, dan Bill Venners, penjelasan berikut diberikan:
Anda mungkin telah memperhatikan bahwa belum ada break
atau continue
. Scala meninggalkan perintah-perintah ini karena mereka tidak cocok dengan fungsi literal ... Jelas apa continue
artinya di dalam while
loop, tetapi apa artinya di dalam fungsi literal? ... Ada banyak cara untuk memprogram tanpa break
dancontinue
, dan jika Anda memanfaatkan fungsi literal, alternatif tersebut seringkali lebih pendek dari kode aslinya.
Kembali:
Pengembalian dapat dianggap sebagai keharusan dalam gaya, karena pengembalian adalah kata kerja, perintah untuk melakukan sesuatu. Tetapi mereka juga dapat dilihat secara murni fungsional / deklaratif: mereka mendefinisikan apa nilai balik dari fungsi tersebut (bahkan jika, dalam suatu fungsi dengan banyak pengembalian, mereka masing-masing hanya memberikan definisi parsial).
Dalam buku yang sama, mereka mengatakan hal berikut tentang return
:
Dengan tidak adanya return
pernyataan eksplisit , metode Scala mengembalikan nilai terakhir yang dihitung oleh metode. Gaya yang direkomendasikan untuk metode sebenarnya adalah untuk menghindari return
pernyataan yang eksplisit, dan khususnya banyak ,. Sebaliknya, pikirkan setiap metode sebagai ekspresi yang menghasilkan satu nilai, yang dikembalikan.
Metode mengakhiri dan mengembalikan nilai, bahkan jika a return
pernyataan tidak digunakan, sehingga tidak ada masalah dengan penutupan, karena jika tidak, penutupan tidak akan bekerja.
Juga tidak ada masalah menyatu dengan fungsi literal, karena fungsi tetap harus mengembalikan nilai.
break
dancontinue
membutuhkan beberapa mesin pembersihan tambahan. OTOHreturn
adalah cara untuk menghentikan fungsi secara tertib, dan semua mesin pembersihan sudah ada di sana.