내 C + + 프로그래밍 숙제를 자극하는 방법으로, 나는 C++을 책에서 내 컴퓨터로 타이핑하는 대신 Ruby에서 개혁하기로 결정했습니다. 예, 그것은 바보 같지만 지루합니다.void foo (int & x) -> 루비? 참조로 정수 전달하기?
어쨌든, 난 상응하는 루비 코드 기능 내부 것이 무엇
void swap(int &a,int &b){ int c=b; b=a; a=c }
루비
에 기능의이 종류를 변환하는 데 문제?내 C + + 프로그래밍 숙제를 자극하는 방법으로, 나는 C++을 책에서 내 컴퓨터로 타이핑하는 대신 Ruby에서 개혁하기로 결정했습니다. 예, 그것은 바보 같지만 지루합니다.void foo (int & x) -> 루비? 참조로 정수 전달하기?
어쨌든, 난 상응하는 루비 코드 기능 내부 것이 무엇
void swap(int &a,int &b){ int c=b; b=a; a=c }
루비
에 기능의이 종류를 변환하는 데 문제?를 작성하여 교환 루비 엄격하게 패스에 의해 값. 항상. 그러나 때로는 그 값은 사기꾼입니다. 이 모두가 "자바"라고하면서, 그들이 정말로 말을해야
참고 : 여기에
링크의 부부의 "스몰 토크와 자손" 루비 (Ruby)와 다른 언어들도 제공합니다. 이나는 혼란의 대부분은이 문제에서 비롯된 생각합니다. 그러나 그 문장에서 "reference"라는 단어는 "pass-by-reference"에서 "reference"라는 단어와 동일하지 않습니다. 아마 우리가 모호해질 때 명확하다 : "pass-by-variable"과 "reference"를 "pointer"("good"well-behaved poointers, "bad" C에서 "들) 가
은 BTW : 나는 의도적으로 객체 지향은 분명히 내가, 내가 개체에 대한 불투명 한 참조에 대해 이야기하고 원시 메모리 주소에 대해 이야기하고 있지 않다 있는지 확인하기 위해 OO와 "poointers을"의 철자가 틀리 (및 명백한에 대한 나는 "참조"라는 단어를 사용하고 싶지 않은 이유들 ; "포인터"도 "참조"도 아닌 더 나은 단어를 안다면 나는 그것을 듣고 싶습니다.)
루비에서는 인수가 값으로 전달됩니다. 그래서 다음과 같은 방법은 어떤 효과가 없을 것입니다 반면에
def doesnt_swap(a, b)
c = a
a = b
b = c
end
를, 대부분의 사람들의 객체는 예 문자열에 대한 참조입니다, 그래서 당신은이의 문자열 값을 교환 할
def swap_strings(a, b)
c = a.dup
a.replace(b)
b.replace(c)
end
를 작성할 수 두 가지 주장.
정수는 즉각적이므로 정수는 replace
과 같습니다. swap_integers
을 쓸 수 없습니다.
어쨌든, 루비, 당신은 a, b = b, a
외관상으로는 크게 논쟁의 여지가 있습니다 http://www.ruby-forum.com/topic/41160 – Earlz
자바와 자바 스크립트가 같은 값으로 전달된다는 것은 사실입니다. –
@ Erlz : 이것은 다른 언어 커뮤니티 간의 용어에 대한 의견 차이입니다. Java의 객체는 같은 방식으로 동작하며 값으로 전달합니다. – newacct