Tôi đang sử dụng RubyMine đó thông báo với tôi rằngĐộ dài tối đa của tên phương pháp trong ruby là bao nhiêu?
unsubscribe_from_all_notifications
... là quá dài đối với một tên phương pháp. Chiều dài tối đa là bao nhiêu?
Tôi đang sử dụng RubyMine đó thông báo với tôi rằngĐộ dài tối đa của tên phương pháp trong ruby là bao nhiêu?
unsubscribe_from_all_notifications
... là quá dài đối với một tên phương pháp. Chiều dài tối đa là bao nhiêu?
RubyMine nằm :-) Hoặc ít nhất không có nghĩa là đó là giới hạn của trình thông dịch Ruby.
looong_name = "a" * 10000; # => "aaaaaaaaa.....
a_class = Class.new
a_class.__send__(:define_method, looong_name) { :hello }
a_class.new.__send__(looong_name) # => :hello
puts a_class.instance_methods.inspect # you better not run this :-)
AFAIK không có giới hạn về kích thước của tên phương thức trong ruby.
Rất có thể bạn có một số thiết lập kiểu mã hóa trong RubyMine hiển thị cho bạn cảnh báo này. Nếu trên một mac kiểm tra RubyMine> Preferences> Code Style> Ruby và xem nếu có một số loại ưu tiên trong đó.
Để cho bạn biết tôi cũng sử dụng RubyMine nhưng tôi không thấy kiểu mã hóa này được đặt cho tôi.
Trong RubyMine, bạn có thể thay đổi độ dài tối đa cho tất cả các loại tên của Ruby bởi:
Tôi đoán đó là sự cố RubyMine; Tôi đã thử một phương thức với tên 'unsubscribe_from_all_notifications_and_keep_making_this_bloody_thing_longer_and_longer_and_longer_and_longer_and_longer' và nó hoạt động tốt trong Ruby 1.8.7 và 1.9.2 ... – BaronVonBraun
Lập trình meta cho bất kỳ ai? –
@AndrewGrimm hoàn thành :-) –