Tôi nhận ra rằng các dấu ngoặc nhọn cho một băm có thể được bỏ qua nếu nó là phần tử cuối cùng trong một mảng. Ví dụ, các hình thức:Bỏ dấu ngoặc nhọn cho một băm trong mảng
[1, 2, 3, :a => 'A', :b => 'B']
[1, 2, 3, a: 'A', b: 'B']
dường như giống hệt nhau để:
[1, 2, 3, {:a => 'A', :b => 'B'}]
[1, 2, 3, {a: 'A', b: 'B'}]
tôi biết loại này thiếu sót có thể cho các đối số của một phương pháp, nhưng đã không lưu ý nó có thể cho một mảng . Sự hiểu biết của tôi về quy tắc này có đúng không? Và, điều này được mô tả ở đâu đó?
Tôi cho rằng theo lý thuyết, '[...]' là một phương thức gọi tới một phương thức trông giống như 'def x (* args)' để hành vi này có ý nghĩa gì đó. Có thể đào lên mã mảng xử lý chữ C để xem nó được xử lý như thế nào trong nội bộ. –
Tôi sẽ không sử dụng nó như là một thực hành mã hóa mặc dù. Tôi thích nhìn thấy các phân định trực quan được cung cấp bởi '{' và '}', và sẽ nói rằng trong một đánh giá mã. Đó là vấn đề bảo trì và dễ đọc. –
@muistooshort Nó hoạt động ngay cả khi nó không phải là một cuộc gọi phương thức. Điều này làm việc cho việc tạo một mảng. – sawa