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 continuedapat 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 breakatau continue. Scala meninggalkan perintah-perintah ini karena mereka tidak cocok dengan fungsi literal ... Jelas apa continueartinya di dalam whileloop, tetapi apa artinya di dalam fungsi literal? ... Ada banyak cara untuk memprogram tanpa breakdancontinue , 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 returnpernyataan eksplisit , metode Scala mengembalikan nilai terakhir yang dihitung oleh metode. Gaya yang direkomendasikan untuk metode sebenarnya adalah untuk menghindari returnpernyataan 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.
breakdancontinuemembutuhkan beberapa mesin pembersihan tambahan. OTOHreturnadalah cara untuk menghentikan fungsi secara tertib, dan semua mesin pembersihan sudah ada di sana.