루비 메소드에 느낌표는 왜 붙는거죠


물음표는 이거 있니? 너 맞니? 이런식으로 묻는거라서 물음표인게 이해 가는데

느낌표는 뭘 하길래 물음표일까요

  • 2016년 02월 25일에 작성됨

조회수 238


1 답변


좋아요
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
  • 2016년 02월 25일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close