2
생성자에서는 인수를 인스턴스 변수로 바꾸기를 원합니다. 그것을 할 순진 방법은 다음과 같습니다생성자에서 splat 연산자를 사용하는 것이 효과적입니까?
class A
def initialize a, b, c
@a, @b, @c = a, b, c
end
end
하지만 쉬운 방법은 다음과 같습니다
class A
def initialize *args
@a, @b, @c = args
end
end
하지만 여분의 배열을 만드는 후자의 코드처럼 보이는 이후 코드의 속도에 대해 우려했다 args
은 이전 코드에서 생성되지 않았습니다. 속도 또는 능률의 관점에서, 이전 하나에 충실하고 후자를 사용하지 않는 것이 더 낫습니다, 또는 차이가 있습니까?
루비 충분히 그 여분 배열해야 문제가되지 너무 느립니다. * ducks * –
정말 답이 아니지만 각 생성자 정의를 사용하여 수천 개의 객체를 인스턴스화하는 테스트 프로그램 작성을 제안합니다. 각각의 시간을 비교해 보면 두 가지 구현 중 빠를 것입니다. – ardnew
나는 스피드에 특별히 관심이 있다는 것을 알고있다. 그러나 두 번째 스 니펫이 중요한 정보 (메서드의 주장)를 버리는 것을 감안할 때, 왜 그런 식으로 쓰는지 이해하기가 어렵다. – tokland