Saya terbiasa membatasi pernyataan dengan titik koma dari Jawa, jadi tentu saja saya melakukannya dalam kode Scala juga. Saya juga merasa bahwa kodenya lebih mudah dibaca, karena jelas di mana satu pernyataan berakhir dan yang lain dimulai. Tetapi berkali-kali ketika saya memposting sepotong kode Scala pada SO, kode tersebut diedit hanya untuk menghilangkan titik koma.
- Haruskah saya menggunakan titik koma atau tidak? Apakah ada pedoman atau gaya penulisan kode "resmi"?
- Apakah ada kasus di mana tanda titik koma diperlukan, jika tidak, kodenya ambigu?
coding-style
scala
Petr Pudlák
sumber
sumber
Jawaban:
Tidak ada cara resmi "benar" untuk melakukannya, tetapi kebanyakan praktisi menghilangkan titik koma di mana pun mereka bisa (itulah sebabnya begitu banyak orang menghapus titik koma secara refleks).
Bahasa ini berusaha sangat keras untuk membuat Anda lupa tentang perlunya mengakhiri pernyataan sama sekali. Sayangnya, itu tidak cukup berhasil, jadi ada berbagai situasi rumit di mana titik koma, atau seperangkat tanda kurung tambahan, atau "petunjuk" serupa diperlukan untuk menghindari semantik yang tidak diinginkan. Situasi seperti itu hampir cukup langka sehingga biasanya Anda tidak perlu memikirkannya. Pendapat berbeda tentang apakah ini berarti Anda harus memberi tanda baca defensif (itulah yang saya pikir) atau tidak pernah memberi tanda baca sampai Anda mengalami masalah (itulah yang dipikirkan oleh sebagian besar pengguna). Pada akhirnya, itu menjadi milik Anda apakah Anda mengidentifikasi diri sebagai pembangkang atau warga negara teladan.
sumber
Seberapa besar Anda ingin mengerti bahasa yang Anda gunakan? Apakah Anda ingin bermain dengan kekuatannya atau tidak? Sintaksis Scala mendorong kode yang jelas dan ringkas; beberapa kasus tepi di mana mengambil keuntungan dari ini menyebabkan masalah bagi pengurai Scala adalah instruktif (yaitu, Anda belajar lebih banyak tentang Scala dengan menemukan dan belajar bagaimana menghindarinya) dan secara bertahap diperbaiki (misalnya notasi akhiran ). Menggunakan semi-kolon secara defensif mungkin berarti Anda tidak perlu belajar tentang masalah-masalah ini tetapi apakah Anda benar-benar melihatnya sebagai hal yang baik? Perbaikan untuk masalah ini biasanya memiliki implikasi lain tetapi Anda akan kehilangan kemungkinan ini.
Pertimbangan lain adalah bahwa, seperti yang diakui Kilian, sebagian besar pengembang Scala mengabaikan semi-titik dua secara default. Bagaimana Anda berharap untuk bekerja dengan kode orang lain jika Anda menghindari menggunakan Scala idiomatik sendiri? Anda akan merasa jauh lebih sulit daripada yang seharusnya.
Saya tidak bisa cukup menekankan bahwa fitur-fitur parser Scala ini dipilih untuk mendorong kode yang bersih, dapat digunakan kembali, dan fungsional (dalam arti fp). Ambil sintaks operator infix sebagai contoh; itu mendorong pengembang untuk melengkapi kelas dengan metode sederhana, satu tujuan yang menyusun bersama dengan baik. Perpustakaan koleksi Scala menunjukkan betapa indahnya itu bisa bekerja. Para pengembang Jawa yang terlatih secara klasik yang merangkul ini akan cenderung mengembangkan kebiasaan yang lebih baik dan cara berpikir baru tentang kode mereka. Mereka yang berpegang teguh pada semua titik dan tanda kurung yang sudah dikenal akan kehilangan. Saya berpendapat bahwa ini juga berlaku bagi mereka yang terlalu takut untuk meninggalkan titik koma.
sumber