1 답변
-
느낌표로 끝나는 메소드는 "이 메소드를 쓰면 해당 객체의 내용이 바뀐다"는 뜻입니다. 이 객체를 다른 곳에서 레퍼런스하고 있는 경우 예상치 못한 일이 발생할 수 있기 때문에 dangerous methods라고도 부릅니다.
foo = "A STRING" foo.downcase! # 스스로를 소문자로 바꿈 puts foo
libaray를 보면 똑같은 이름인 메소드가 느낌표가 있는것과 없는것, 2개로 나뉜걸 볼 수 있습니다( 느낌표가 없는 쪽은 safe methods라고 부름).
foo = "A STRING" bar = foo.downcase # foo가 바뀌는게 아니고 return puts foo # prints unchanged foo puts bar # prints newly created bar
댓글 입력