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

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

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

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
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.