2010-06-30 4 views
2

Ruby에서 변수 또는 유형이 차지한 바이트 수를 얻고 싶습니다. Ruby on Rails에 SizeOf 함수와 동일한 기능이 있습니까?Ruby에서 Delphi SizeOf 함수에 해당하는 것은 어느 것입니까?

+0

무엇에 해당합니까? 나는 C를 추측하고있다. – Adrian

+0

가상 메모리가 부족하다? :-) –

+0

디버깅 용입니까, 아니면 무엇입니까? Ruby에는 그러한 메소드가 없기 때문에, 우리가 원하는 것을 달성했다고 사람들이 그 방법을 제안하는 데 도움이 될 수 있습니다. – Chuck

답변

1

스칼라 유형은 ruby.c에서 정의됩니다. 루비에서 폭을 배우는 방법을 모르겠습니다.

추가됨 :

당신은 스칼라 크기를 결정하기 위해 ruby.c를 사용하는 C 프로그램을 작성할 수 있습니다. 그런 다음 Ruby sw에서 C 프로그램을 호출하십시오.

+0

나는 그것을 어떻게하는지 모른다 :( – Jett

2

댓글에서 알 수 있듯이 Ruby에는 이러한 메소드가 없습니다. Ruby에서 직접 메모리를 조작 할 수없고 명시적인 "단순"유형 (모든 것이 객체 임)이 없기 때문에 Ruby의 동적 특성으로 인해이 방법은별로 유용하지 않습니다.

String 클래스의 정렬은 예외입니다. Ruby에서 문자열은 일련의 바이트이므로 String#size데이터의 문자열을 반환합니다.

실제 목적에는 충분하지만, 이 아닌은 메모리의 바이트 수입니다. String 개체에는 데이터 자체 외에 다른 내부 변수가 있습니다.

또한 런타임 중에 Ruby에서 모든 클래스와 객체를 동적으로 수정할 수 있으므로 사용되는 메모리 양을 변경할 수 있습니다. 이전에 없었던 객체에 인스턴스 변수를 추가하는 메소드를 생각해보십시오.

2

델파이 코드와 호환되도록하려면 루비의 크기를 찾는 것이 도움이되지 않습니다. 루비 코드에서 델파이의 크기를 가져 가야합니다. Delphi가 정적으로 타입 화되었으므로, SizeOf은 정말 편리합니다. 단지 델파이 타입과 해당 크기의 테이블을 만드십시오. 배열이있는 경우 테이블의 값에 요소 수를 곱하십시오.

관련 문제