2008-12-04 17 views

Trả lời

8

Tôi đoán tôi làm cả hai, nhưng tôi chắc chắn giữ chúng trong nếu nó thêm vào khả năng đọc và tránh các câu lệnh trông mơ hồ.

3

Tùy theo điều nào dễ đọc hơn.

Nhưng tôi luôn luôn sử dụng dấu ngoặc đơn khi tôi chức năng làm tổ gọi bên trong tham số những người khác

6

Nếu bạn có ý nghĩa trong các cuộc gọi chức năng, tôi luôn đặt dấu ngoặc đơn bởi vì nó luôn luôn dễ đọc hơn. Nếu bạn có ý nghĩa trong điều kiện (nếu, trong khi) tôi chỉ đặt dấu ngoặc đơn khi cần thiết.

+1

Tôi đồng ý. Trong php ví dụ tôi có thể nhanh chóng phát hiện một var bằng tiền tố $ .. trong javascript tôi có thể tái lập một hàm bằng dấu ngoặc đơn(). Trong Ruby, sự khác biệt giữa một var hoặc func (không có dấu ngoặc đơn) không phải lúc nào cũng dễ thấy. –

7

Tôi cố gắng loại bỏ chúng, nếu có thể. Tôi nghĩ rằng nó làm cho mã dễ đọc hơn (nói chung).

9

Tôi bỏ chúng ra khi tôi đang làm công cụ DSL-ish, như t.column hoặc has_many trong đường ray. Phần còn lại của thời gian, nó thường đi xuống để rõ ràng, và nó có thể là một phân chia thậm chí.

82

Từ Elements of Ruby Style

của Ruby cho phép bạn bỏ qua ngoặc, nói chung, chống lại sự cám dỗ này.

Dấu ngoặc đơn làm cho mã dễ dàng hơn để theo dõi. Chung của Ruby phong cách là sử dụng họ, ngoại trừ trong các trường hợp sau đây:

  • Luôn luôn bỏ qua dấu ngoặc rỗng
  • Các dấu ngoặc đơn có thể được gạt ra khỏi một lệnh duy nhất được bao quanh bởi ERb delimiters - các ERb điểm đánh dấu làm cho chắc chắn mã vẫn có thể đọc được
  • Một dòng là một lệnh duy nhất và một đối số đơn lẻ có thể là được viết mà không có dấu ngoặc đơn. Cá nhân, tôi thấy rằng tôi làm điều này ít hơn và ít hơn, nhưng nó vẫn hoàn toàn có thể đọc được. Tôi có xu hướng không thích các dòng đơn lẻ trong mã ruby ​​thông thường có nhiều đối số và không có dấu ngoặc đơn.
  • Rất nhiều ngôn ngữ cụ thể dựa trên Ruby (chẳng hạn như Rake) không sử dụng dấu ngoặc đơn để giữ nguyên cảm giác tự nhiên của ngôn ngữ .
2

Tôi có xu hướng bỏ chúng ra khi thực hiện các xác nhận như assert_equal. Có lẽ nó là để làm cho nó giống như ngôn ngữ cụ thể giống như ngôn ngữ.

22

tôi sử dụng dấu ngoặc như ý kiến ​​để giúp tương lai tôi ... người có khả năng có các tế bào não ít hơn so với hiện tại tôi :-)

Không có gì tồi tệ hơn nhìn vào một số mã bạn đã viết 2 năm trước đây và sự hiểu lầm nó, để bạn phá vỡ một cái gì đó trong khi sửa đổi nó.

Nếu parens sẽ tiết kiệm cho tôi trong tương lai một vài phút (hoặc giờ) trong tương lai, tôi sẽ đưa vào càng nhiều càng tốt để làm cho tuyên bố tinh thể rõ ràng.

- John

+1

+1 "Tôi sử dụng parens làm ý kiến ​​để giúp tôi trong tương lai ... những người có khả năng có ít tế bào não hơn so với hiện tại tôi :-)" Đó là SO đúng, và chính xác lý do tại sao tôi làm điều đó. Nó cũng là để thương xót cho bất cứ ai theo tôi, những người đã sử dụng mã của tôi. Trong ngắn hạn, đó là một điều bảo trì. –

2

Nếu bạn đã được lập trình trong một thời gian dài, có thể bạn sẽ có một "ngứa" để thêm dấu ngoặc đơn, và trong nhiều trường hợp có lý do chính đáng cho việc này.

Mã dễ hơn trên đôi mắt mặc dù theo ý kiến ​​của tôi và tôi chưa gặp sự cố - nếu bạn cần dấu ngoặc đơn, bạn sẽ biết trước khi bạn phải chạy vào gỡ lỗi script.

+3

"Giáo viên của tôi nói với tôi rằng điều đó là không thể tránh khỏi". Đó là, và có thể khó để gỡ lỗi. Tôi khuyên bạn nên sử dụng chúng để tránh việc gán tham số mơ hồ. –

+0

Downvoted là "dễ dàng hơn trên mắt" là IMO một lý do tệ hại để bỏ ra dấu ngoặc đơn xung quanh đối số chức năng. –

+0

nói với đám đông không parens tôi gặp phải vấn đề này vào ngày khác 'if owner.is_a? điều // làm việc tốt ' 'nếu owner.is_a? && x> 1 // không tốt Tôi mới chỉ học ruby ​​được vài tuần và nơi tôi làm việc sử dụng số ký tự nhỏ nhất có thể và nếu bạn đến từ bất kỳ ngôn ngữ nào khác, có một đường cong học tập cần biết khi bạn truyền một hàm băm implictiy, một mảng các ký hiệu, chuyển đến các ký hiệu đến một hàm ... tôi không phải là một người hâm mộ. –

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