루비 문서를 탐색하는 동안 the replace method이 발견되었지만이 방법의 사용 사례가 무엇인지 알 수 없습니다.Ruby에서 String #이 대체되는 이유는 무엇입니까?
내가 생각할 수있는 유일한 점은 메모리 관리 (새로운 문자열의 길이가 이전보다 작거나 같은 경우 재 할당이 필요없는 것과 같은)에 관한 것입니다.
아이디어가 있으십니까? 문자열에 반대
루비 문서를 탐색하는 동안 the replace method이 발견되었지만이 방법의 사용 사례가 무엇인지 알 수 없습니다.Ruby에서 String #이 대체되는 이유는 무엇입니까?
내가 생각할 수있는 유일한 점은 메모리 관리 (새로운 문자열의 길이가 이전보다 작거나 같은 경우 재 할당이 필요없는 것과 같은)에 관한 것입니다.
아이디어가 있으십니까? 문자열에 반대
사용 사례는 많이 뭔가를 달성하고자하는 단지 경우 정말 패스 참조하여 변수의 값을 직접 변경할 수있는 다른 언어로. 따라서 String을 메서드에 전달할 수 있으며이 메서드는 문자열을 완전히 다른 것으로 변경할 수 있습니다.
그러나 문자열을 비우고 빈 문자열에 새 문자열을 추가하면 동일한 결과를 얻을 수 있습니다. 다른 클래스도 비슷한 방법을 사용합니다 (배열 및 해시 참조).
그러나 실제로 이러한 방법을 사용해야 할 필요성을 느끼는 경우, 모퉁이에 몸을 걸고 전체 문자열을 변경해야하는 것보다 다른 방법을 모색해야합니다 (예 : 데이터 구조 전달 문자열 대신에 메서드로).
전체 문자열, 바꾸기 방법을 사용하여 대체 할 수있다 : "에 오신 것을 환영합니다 PHP에"
myString = "Welcome to PHP!"
=>를
myString.replace "Goodbye to PHP!"
=> "안녕히 가세요!"
이 링크는 그러한 방법이 유용한 이유를 이해하는 데 유용합니다. http://stackoverflow.com/questions/1872110/is-ruby-pass-by-reference-or-by-value – Scharron