Beberapa alat gaya kode merekomendasikan ini dan saya ingat melihat beberapa alat baris perintah unix memperingatkan tentang baris kosong yang hilang.
Apa alasan untuk memiliki saluran kosong ekstra?
language-agnostic
coding-style
eof
Petteri Hietavirta
sumber
sumber
\n\n
) atau baris baru\n
?cat
file pada shell dan Anda akan tahu sebabnya. Jika file Anda membuat prompt shell saya muncul di tempat lain dari yang seharusnya (di awal baris) saya mungkin akan membencimu. ;)Jawaban:
Banyak alat yang lebih lama berperilaku salah jika baris terakhir data dalam file teks tidak diakhiri dengan baris baru atau carriage return / kombinasi baris baru. Mereka mengabaikan garis itu karena diakhiri dengan ^ Z (eof) sebagai gantinya.
sumber
\n
) di akhir file. Beberapa editor teks, seperti Vim, dan beberapa kompiler (terutama C ++ dan Python) akan mengeluarkan peringatan. (Dalam kasus C ++, standar secara eksplisit mengharuskan ini.)\n\n
.Jika Anda mencoba menggabungkan dua file teks bersama-sama, Anda akan jauh lebih bahagia jika yang pertama berakhir dengan karakter baris baru.
sumber
Terlepas dari kenyataan bahwa itu adalah posisi kursor yang lebih baik ketika Anda pindah ke akhir file dalam editor teks.
Memiliki baris baru di akhir file menyediakan pemeriksaan sederhana bahwa file tersebut belum terpotong.
sumber
Argumen juga dapat dibuat untuk pembersih berbeda jika Anda menambahkan file mengikuti alasan yang sama seperti Mengapa membuntuti koma diperbolehkan dalam daftar?
Berikut ini disalin (dan sedikit dipangkas) dari sumber daya yang ditautkan:
Mengubah:
untuk:
hanya melibatkan perubahan satu baris dalam diff:
Ini mengalahkan perbedaan multi-garis yang lebih membingungkan ketika koma trailing dihilangkan:
sumber
Baris kosong di akhir file muncul sehingga pembacaan standar dari aliran input akan tahu kapan harus menghentikan pembacaan, biasanya mengembalikan EOF untuk menunjukkan bahwa Anda telah mencapai akhir. Mayoritas bahasa dapat menangani penanda EOF. Itu ada karena alasan itu dari masa lalu, di bawah DOS, penanda EOF adalah tombol F6 atau Ctrl-Z, untuk sistem * nix, itu adalah Ctrl-D.
Sebagian besar, jika tidak semua, akan benar-benar membaca hingga penanda EOF sehingga fungsi runtime library membaca dari input akan tahu kapan harus berhenti membaca lebih jauh. Ketika Anda membuka aliran untuk mode Tambah, itu akan menghapus penanda EOF dan menulis melewatinya, sampai suatu penutupan secara eksplisit disebut di mana ia akan memasukkan penanda EOF pada titik itu.
Alat yang lebih lama mengharapkan garis kosong diikuti oleh penanda EOF. Saat ini, alat dapat menangani garis kosong dan mengabaikannya.
sumber
\r\n
alih-alih\n
, panggilan DOS menggunakan campuran ASCIIZ dan ASCII $. Lebih buruk lagi, nanti pada Windows biasanya memasukkan tanda urutan byte Unicode (BOM) di awal sebagian besar file teks. "Keunikan" yang indah.Juga ketika Anda memodifikasi file dan menambahkan beberapa kode di akhir file - diff (setidaknya git diff dalam konfigurasi standar) akan menunjukkan bahwa Anda mengubah baris terakhir, sementara satu-satunya hal yang telah Anda lakukan - menambahkan simbol baris baru. Jadi laporan cvs menjadi kurang nyaman.
sumber
Beberapa bahasa mendefinisikan file input mereka dalam hal jalur input, di mana setiap baris input adalah serangkaian karakter yang diakhiri oleh carriage return. Jika tata bahasa mereka ditentukan, maka baris terakhir file yang valid harus diakhiri juga oleh carriage return.
sumber
Itu karena definisi dari apa file teks itu. Saat Anda membuat file teks baru di lingkungan unix apa pun, konten file itu adalah karakter baris baru '\ n'
Tanpa ini, file tidak benar-benar diidentifikasi sebagai file teks. Sekarang setelah kita menambahkan kode ke file teks ini, ini tentang tidak menghapus baris baru awal ini yang mendefinisikan file teks itu sendiri .
sumber