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

조회수 3617회

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

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

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
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)