초보자로서 내가 놓친 Ruby에 대한 것이지만, 내 인생에서 나는이 결과를 이해하지 못합니다. 그래서 저는이 간단한 함수를 가지고 있습니다 :Ruby에서 한 문자열을 다른 문자열로 설정할 때 미친 동작이 발생했습니다.
def crazyfunc(s)
s.gsub!('a', 'b')
#return has not purpose here
end
이제이 간단한 몇 세트가 있습니다.
s1 = 'abc'
s2 = s1
s2 = crazyfunc(str2)
puts s1
=> bbc
왜 s1이 crazyfunc의 영향을 받습니까? 그래서 이것을 대신해서 :
def crazyfunc(s)
return s.gsub('a', 'b')
end
str1은 바뀌지 않습니다. 하지만 여전히 str1이 변경되는 이유에 대한 논리는 없습니다.
나는'return strin'을'return string'으로 편집했습니다. – s84
대기열에서 'string'열의 속성을 호출하지 마십시오. – s84
ok, 그래서 모든 'string'변수를 변경했습니다. 문자열은 근본적으로 예약어입니다. 이것을 변수로 사용하지 마십시오. – s84