Để viết ngắn gọn hơn, chứ không phải làm điều này:Được gán trong một điều khoản ruby có điều kiện tốt?
test_value = method_call_that_might_return_nil()
if test_value
do_something_with test_value
end
Tôi đã gán trong điều kiện:
if test_value = method_call_that_might_return_nil()
do_something_with test_value
end
là phong cách xấu này? Cú pháp vẫn còn hơn-ngắn gọn:
do_something_with test_value if test_value = method_call_that_might_return_nil()
không được theo Matz (http://redmine.ruby-lang.org/issues/show/1141) cho phép, như đã thảo luận in another SO question, và sẽ vẫn như vậy trong 1,9,.
Do sự nhầm lẫn có thể có của việc chuyển nhượng và so sánh, điều này có khiến việc đọc mã không quá khó khăn?
Tôi nghĩ rằng một dòng phải được rút ra giữa sự đồng nhất và dễ hiểu. Tôi nghĩ trong thời đại ngày nay, nơi chúng ta phải biết một số ngôn ngữ khác nhau, một ý tưởng hay là sử dụng các tính năng mới tuyệt vời của một số ngôn ngữ mà không làm hư hại kiến thức lập trình viên bất động sản hiện có. Là một lập trình viên chuyên gia, tại sao tôi nên có sự cần thiết phải google phù hợp cú pháp như vậy từ ngôn ngữ này sang ngôn ngữ khác? Tôi sẽ dành nhiều thời gian để giải quyết vấn đề trong tầm tay. Ví dụ, làm thế nào để đa luồng trong ruby. –
Rubocop và hướng dẫn kiểu ruby này khuyên bạn nên tránh: https://github.com/bbatsov/ruby-style-guide – Rimian
Liên kết tới phần cụ thể của hướng dẫn kiểu: https://github.com/bbatsov/ruby-style -guide # safe-assignment-in-condition –