2009-11-18 31 views
18

Tôi đang xem lại Python sau khi đi bộ tuyệt vời của Michael Sparks qua kiểm tra chính tả Python của Peter Norvig tại SO DevDay ở London.Lý do đằng sau cú pháp khoảng trắng Makefile là gì?

Một trong những điểm mà anh đã đánh dấu là làm thế nào để xem Python sạch. Không lộn xộn với niềng răng cho phạm vi nhưng sử dụng không gian màu trắng để chỉ ra phạm vi khối thay thế.

Điều này khiến tôi suy nghĩ. Tôi tự hỏi liệu đó có phải là lý do đằng sau các điểm thụt lề của TAB được thêm vào các lệnh cần thiết để xây dựng một mục tiêu.

Đó có phải là khía cạnh rõ ràng giống nhau không? Để dễ dàng phân biệt giữa một mục tiêu và các lệnh cần thiết để xây dựng mục tiêu?

+1

Tôi luôn lo lắng về việc gắn thẻ lại 10 nghìn người dùng ... Bạn có thể đưa ra một số phản hồi về bài đăng này không? http://meta.stackexchange.com/questions/24030/why-do-they-specify-makefile-tag-instead-of-make/26567#26567 –

+0

@Pavel, vừa đăng câu trả lời. BTW +1 cho nhận xét. –

Trả lời

40

Từ "The Art of Unix Programming" xuất phát quote này:

Tại sao các tab trong cột 1? Yacc mới, Lex là người mới. Tôi cũng đã không thử, vì vậy tôi nghĩ đây sẽ là một lý do tốt để học. Sau khi bản thân mình gầm gừ với cú đâm đầu tiên của tôi tại Lex, tôi chỉ làm một cái gì đó đơn giản với mẫu tab mới. Nó hoạt động, nó ở lại. Và sau đó vài tuần sau, tôi có dân số khoảng một chục người, hầu hết là bạn bè, và tôi không muốn sử dụng cơ sở nhúng của mình. Phần còn lại, đáng buồn thay, là lịch sử.
- Stuart Feldman
2

Tôi nghĩ Makefiles mắc lỗi khi nhấn mạnh chính xác một ký tự tab cho thụt đầu dòng. Có hại gì trong việc cho phép không gian? Không có sự mất chính xác nào, vì các lệnh shell không thể bắt đầu bằng các khoảng trống một cách hữu ích, và không có sự nhầm lẫn giữa các dòng đích và các dòng lệnh.

+0

@Ned, yep đồng ý với bạn. Tôi đoán bằng cách làm cho nó là một "Thou shalt tab!" chúng ta không phải lo lắng về các cuộc thảo luận như những người về việc là Pythonic! (-: –

+0

@Ned, tôi nghĩ makefiles chấp nhận nhiều hơn một không gian và không giới hạn một và chỉ một ký tự TAB. –

+1

Makefiles yêu cầu các dòng công thức bắt đầu bằng TAB. Sau TAB, bạn có thể có nhiều TAB khác hoặc sử dụng bất kỳ khoảng trắng nào, không chỉ TAB, sẽ phá vỡ hàng nghìn makefiles, bởi vì nhiều makefiles thụt lề các phép gán biến, hoặc các dòng lệnh khác, với dấu cách. mà bạn có thể sử dụng để thay đổi ký tự giới thiệu dòng công thức từ mặc định (TAB) sang một số ký tự đơn khác. Điều này làm cho makefile của bạn kém di động hơn, nhưng có thể dễ đọc hơn. – MadScientist

Các vấn đề liên quan