rubygem 저는 쓰고 있어요. 그리고 그것은 텍스트에서 단어 어커런스를 세는 데 유용합니다. 나는 클래스 생성자에 3 개의 매개 변수를 넣기로합니다.클래스 생성자에서 매개 변수를 사용할 수 있습니까?
코드가 작동하지만 정교함을 위해 리팩토링하고 싶습니다. 경험상, params가없고 setter/getters 메서드가 많은 생성자 또는이 매개 변수와 같은 코드를 생성자의 모든 매개 변수와 함께 사용하여 읽기/mantain/use를 쉽게 수행 할 수 있습니까?
TIA
파올로
def initialize(filename, words, hide_list)
if ! filename.nil?
@filename = filename
@occurrences = read
else
@filename = STDIN
@occurrences = feed
end
@hide_list = hide_list
@sorted = Array(occurrences).sort { |one, two| -(one[1] <=> two[1]) }
@words = words
end
적어도 다른 언어로 생성자에 매개 변수를 갖는 이점 중 하나는 해당 유형을 불변으로 만들 수 있다는 것입니다. 모든 것을 별도로 설정하면 그렇게 할 수 없습니다. 루비에 적용되는지 여부는 모르겠다. 이것이 왜 답변이 아니라 주석인지 이유 다. –
@ 존 : http://stackoverflow.com/questions/408208/ruby-immutable-objects 당신이 불변의 객체를 루비로 처리 할 수 있는지 여부를 설명합니다 (불변의 타입과 다를 수 있습니다). –