لماذا يوصى أن يكون لديك خط فارغ في نهاية ملف المصدر؟

StackOverflow https://stackoverflow.com/questions/2287967

سؤال

توصي بعض أدوات نمط الكود بهذا وأتذكر رؤية بعض أدوات سطر أوامر UNIX تحذير من الخط الفارغ المفقود.

ما هو سبب وجود خط فارغ إضافي؟

هل كانت مفيدة؟

المحلول

يسيء التصرف في العديد من الأدوات القديمة إذا لم يتم إنهاء السطر الأخير من البيانات في ملف نصي باستخدام خط جديد أو مجموعة جديدة من الخط. يتجاهلون هذا الخط كما يتم إنهاءه مع ^Z (EOF) بدلاً من ذلك.

نصائح أخرى

إذا حاولت تسلسل ملفين نصيتين معًا ، فستكون أكثر سعادة إذا انتهى الشخص الأول بحرف خط جديد.

بصرف النظر عن حقيقة أنه موقع مؤشر أجمل عندما تنتقل إلى نهاية ملف في محرر نص.

يوفر وجود سطر جديد في نهاية الملف تحققًا بسيطًا من عدم اقتطاع الملف.

يمكن أيضًا تقديم وسيطة لصرف نظافة إذا قمت بإلحاق الملف باتباع نفس المنطق كما لماذا يُسمح بفواصل زائدة في قائمة؟

يتم نسخ ما يلي (وتقلص قليلاً) من المورد المرتبط:

التغيير:

s = [
  'manny',
  'jack',
]

ل:

s = [
  'manny',
  'jack',
  'roger',
]

لا ينطوي على تغيير خط واحد فقط في الفرق:

  s = [
    'manny',
    'jack',
+   'roger',
  ]

هذا يتفوق على الفرق المتعددة أكثر إرباكًا عندما تم حذف فاصلة الفاصلة:

  s = [
    'manny',
-   'jack'
+   'jack',
+   'roger'
  ]

يظهر السطر الفارغ في نهاية الملف بحيث ستعرف القراءة القياسية من دفق الإدخال متى يتم إنهاء القراءة ، وعادة ما يعيد EOF للإشارة إلى أنك قد وصلت إلى النهاية. غالبية اللغات يمكن أن تتعامل مع علامة EOF. هناك لهذا السبب من الأيام الخوالي ، تحت DOS ، كانت علامة EOF هي مفتاح F6 أو CTRL-Z ، لأنظمة *nix ، كانت CTRL-D.

معظم ، إن لم يكن كل شيء ، سوف يقرأون في الواقع حتى علامة EOF بحيث ستتعرف وظيفة مكتبة وقت التشغيل من القراءة من الإدخال متى تتوقف عن القراءة بعد ذلك. عندما تفتح الدفق لوضع إلحاق ، سوف يمسح علامة EOF واكتبه ، حتى يتم استدعاء الإغلاق بشكل صريح والذي سيقوم بإدراج علامة EOF في تلك المرحلة.

كانت الأدوات القديمة تتوقع خطًا فارغًا تليها علامة EOF. في الوقت الحاضر ، يمكن للأدوات التعامل مع الخط الفارغ وتجاهله.

أيضًا عندما تقوم بتعديل الملف وإلحاق بعض التعليمات البرمجية في نهاية الملف - سيظهر Diff (على الأقل GIT Diff في Conguration) أنك غيرت السطر الأخير ، في حين أن الشيء الوحيد الذي قمت به بالفعل - أضاف رمزًا جديدًا. لذلك تصبح تقارير CVS أقل ملاءمة.

تحدد بعض اللغات ملف الإدخال الخاص بها من حيث خطوط الإدخال ، حيث يكون كل سطر إدخال عبارة عن سلسلة من الأحرف التي تم إنهاءها بواسطة عودة النقل. إذا تم تعريف قواعد اللغة الخاصة بهم ، فيجب إنهاء السطر الأخير الصحيح من الملف بواسطة عودة النقل أيضًا.

إنه بسبب تعريف ملف نصي. عند إنشاء ملف نصي جديد في أي بيئة UNIX ، فإن محتويات هذا الملف هي حرف خط جديد 'ن'

بدون هذا ، لم يتم تحديد الملف حقًا كملف نصي. الآن بمجرد إضافة رمز إلى هذا الملف النصي ، فإنه حول عدم إزالة هذا السطر الجديد الأولي الذي يحدد ملف نصي نفسه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top