Làm cách nào để tôi làm nổi bật hàm, trong ruby, chẳng hạn như sau?Ruby: Làm thế nào để thay đổi giá trị của một tham số trong một cuộc gọi hàm?
change_me! (val)
cập nhật:
Những gì tôi đặt ra để làm được điều này:
def change_me! (val)
val = val.chop while val.end_with? '#' or val.end_with? '/'
end
này chỉ kết thúc với ....
change_me! 'test#///' => "test#///"
Những gì bạn đang cố gắng làm các vít có phạm vi. Khi bạn gọi một hàm, bạn thay đổi phạm vi, do đó, nó sẽ không hoạt động theo cách bạn muốn. Bạn sẽ cần phải chơi với 'define_method', đó là quá mức cần thiết cho việc này. Bạn cần phải cấu trúc lại quá trình suy nghĩ của bạn. – Trevoke
@Trevoke Những gì zombie cố gắng sẽ có thể với pass-by-pointer hoặc pass-by-reference. Tuy nhiên, ruby không làm điều đó. Bạn có thể sửa đổi bên trong của đối tượng được truyền, nhưng không thể sửa đổi đối tượng. Nhưng bạn hoàn toàn có thể thay thế những gì được lưu trữ trong đối tượng. – hurikhan77