foo ||= []
foo << :element
약간 투박한 느낌입니다. 더 관용적 인 방법이 있습니까?
답변:
(foo ||= []) << :element
그러나 meh. 읽을 수있게 유지하는 것이 정말 번거로운가요?
foo
자체가 당신이 값을 조회하는 (중첩) 해시 같은 더 복잡한 표현이며,이 값을 여러 번 찾는하거나 고개를 배열 값을 다른 변수 지출을 피할 수있는 좋은 방법입니다.
다음 과 같이 Kernel # Array 를 사용할 수도 있습니다.
# foo = nil
foo = Array(foo).push(:element)
# => [:element]
다음과 같이 잠재적 인 배열을 평면화하는 이점이 있습니다.
# foo = [1]
foo = Array(foo).push(:element)
# => [1, :element]
foo = foo
설정 foo
되는 것이 항상 보장되는 것은 아닙니다 . 또한, 평평하지 않습니다 . 배열이면 반환 됩니다. nil
foo
Kernel#Array
foo
foo
(foo ||= []) << :element
있지만 더 추한 것으로 보입니다.