[RUBY-ON-RAILS] 루비 어레이 작성, VS Array.new []
RUBY-ON-RAILS루비 어레이 작성, VS Array.new []
이 두 문장의 차이점은 무엇입니까? 내 레일 응용 프로그램에서 사용하고 같은 일을하는 것처럼 나에게 보인다
array_a = Array.new
array_b = []
해결법
-
==============================
1.그 두 문은 기능적으로 동일합니다. 인수 및 블록을 취할 수 있지만 Array.new :
그 두 문은 기능적으로 동일합니다. 인수 및 블록을 취할 수 있지만 Array.new :
Array.new # => [] Array.new(2) # => [nil,nil] Array.new(5,"A") # =>["A","A","A","A","A"] a = Array.new(2,Hash.new) a[0]['cat'] = 'feline' a # => [{"cat"=>"feline"},{"cat"=>"feline"}] a[1]['cat'] = 'Felix' a # => [{"cat"=>"Felix"},{"cat"=>"Felix"}] a = Array.new(2){Hash.new} # Multiple instances a[0]['cat'] = 'feline' a # =>[{"cat"=>"feline"},{}] squares = Array.new(5){|i|i*i} squares # => [0,1,4,9,16] copy = Array.new(squares) # initialized by copying squares[5] = 25 squares # => [0,1,4,9,16,25] copy # => [0,1,4,9,16]
참고 : 루비 1.9 프로그래밍에서 가져온 위의 예
-
==============================
2.[]는 Array 클래스의 싱글 방법에 대한 바로 가기입니다 [] 아마 당신은 너무 많은 걱정없이 '들은이 같은'말할 수 있도록 차례로, Array.new처럼 같은 방법으로 새로운 배열을 작성한다.
[]는 Array 클래스의 싱글 방법에 대한 바로 가기입니다 [] 아마 당신은 너무 많은 걱정없이 '들은이 같은'말할 수 있도록 차례로, Array.new처럼 같은 방법으로 새로운 배열을 작성한다.
IRB에서] [호출 할 때마다 새로운 배열을 작성합니다 :
>> [].object_id => 2148067340 >> [].object_id => 2149414040
루비의 C 코드에서 :
rb_define_singleton_method(rb_cArray, "[]", rb_ary_s_create, -1);
-
==============================
3.차이는 근본적으로 없다
차이는 근본적으로 없다
-
==============================
4.이러한 Hash.new 등 대 {}. 그들은 동일합니다. 속도를 포함합니다.
이러한 Hash.new 등 대 {}. 그들은 동일합니다. 속도를 포함합니다.
-
==============================
5.다른 사람은 이미 대답 것처럼
다른 사람은 이미 대답 것처럼
그러나 (코드를 쉽게 읽을 수 있도록) 각 하나를 사용해야의 방향에 대한 지침이 있습니다. 그 뒤에 그 이유는 :
에서: https://github.com/rubocop-hq/ruby-style-guide#literal-array-hash
그래서 당신은] 하늘의 배열을 [만드는 경우가 최선의 선택이지만 Array.new (N)를 작성해야 무엇보다, 객체 전무 N의 세트로 배열을 작성해야합니다.
from https://stackoverflow.com/questions/4601652/ruby-array-creation-array-new-vs by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 퓨마는 유일한 멀티 스레드 레일 4 HTTP 서버인가? (0) | 2020.03.03 |
---|---|
[RUBY-ON-RAILS] 레일에서 검증되지 않은 누락 된 파일을 간단한 COV 보석 (0) | 2020.03.03 |
[RUBY-ON-RAILS] 레일 (루비) : 예 / 아니오 대신 참의 / 거짓 (0) | 2020.03.03 |
[RUBY-ON-RAILS] 내가 어떻게 비활성화 당 액션 기준으로 루비 온 레일즈 로깅? (0) | 2020.03.03 |
[RUBY-ON-RAILS] 유증과 세션 길이 설정 (0) | 2020.03.03 |