2012-07-12 2 views
-1
  1. 배열 색인이 반환되었거나 전체 배열이 반환 되었습니까?배열 반환은 어떻게 루비에서 발생합니까?

  2. 그리고 배열의 수명은 어떨까요? 생성 된 배열을 반환하지 않으면 메모리 공간을 계속 사용합니까, 아니면 함수를 떠날 때 자동으로 해제됩니까?

OOP 및 Ruby를 처음 사용합니다. 이전에 C를 했어.

+0

배열과 관련하여 특별한 이유가 있습니까? 모든 개체에 대해 동일합니다. –

답변

2

루비에 대한 몇 가지 점이 있습니다. 첫째, Ruby는 가비지 수집 언어이므로 Ruby 구현에 따라 다른 시점에 가비지 수집기가 메모리 공간을 비 웁니다.

둘째, "배열 반환"이 무슨 뜻인지 명확하지 않습니다. 당신이 방법에서 의미하는 경우에, 두건의 밑에 무엇이 일어나는가의 질문은 아마 실시 중 하나이다. 프로그래머의 관점에서, 전체 배열이 리턴됩니다. 동일한 메모리 블록이 참조되는지 여부는 변수의 범위에 대한 질문 일 가능성이 높습니다. 전체 배열을 참조가 아닌 값으로 반환하는 것이 가능합니다.

MRI 또는 ​​Matz 's Ruby라고도 알려진 "표준"구현은 C로 작성되었으며 오픈 소스이므로 메모리 할당 및 할당 취소 기능을 포함하여 C code for an array을 볼 수 있습니다.

관련 문제