728x90
ruby의 ?(Question Mark / Boolean)의 의미
서론
- 루비를 사용하다 보면, 메서드에 ?가 붙여 있는 경우를 많이 보게 됩니다.
- ? 를 붙이는 이유와 어떤 변경점이 있는지, ruby의 구현되어 있는 메서드들을 간단히 살펴보는 시간을 가져볼 예정입니다.
- ? 를 붙이는것은 Question Mark라고 하지만, 실질적으로 메서드에 붙어 있다면 Boolean Methods라고 많이 합니다.
method에 ? 가 내포하는 의미
- 일단 한마디로 정의한다면 boolean methods(논리 메서드) 라는 의미를 가지고 있습니다.
- 쉽게 생각하면 boolean이 return되는 메서드입니다.
- Java에서는 boolean을 의미할때 is_ prefix를 많이 사용하게 되는데요. 루비에선 ? 를 뒤에 붙임으로써 boolean을 리턴하는 메서드를 의미합니다.
- 쉽게 예제로 살펴보면 아래와 같습니다.
numbers = [1,2,3]
numbers.any?(1) # 1이 해당 배열에 하나라도 있아?
numbers.any?(5) # 5이 해당 배열에 하나라도 있아?
- any? 라는 메서드는 해당 배열에서 하나라도 맞는게 있는지 체크하는것입니다. 이런 경우에 존재하는지 않하는지에 대해서 boolean으로 리턴을 하게 되는데, 이런경우에 ? 를 붙혀서 boolean Method라는것을 알려주게 됩니다.
- 직접 아래와 같이 메서드를 만들때도 ? 를 이용해서 boolean method라는것을 의미할수 있습니다.
def more_than_five?(number)
number > 5
end
more_than_five?(1)
more_than_five?(6)
결론
- 루비의 컨벤션중에 Boolean Method라는것이 있고, ? 가 붙은 메서드들을 의미합니다.
- 이런 경우에도 특별히 Ruby라는 언어에서 무언가를 해주는것은 아니지만, 통용적으로 사용하는 컨벤션을 꼭 알아둬야 한다고 생각합니다. 이유는 동료 개발자와의 협업도 중요하지만, 실제 라이브러리나 ruby API를 이해하기위해선 꼭 알아둬야 하는 개념이 아닐까 생각이 듭니다.
- 자매품(?)인 Bang Method에 대해서도 글을 작성했으니 참고하시길 바랍니다.
cf)
- 교육 및 성장, 경험과 관련된 이야기(취준, 이직 또는 교육 관계자)에 대해서 커피챗을 하는것에 대해 관심이 많습니다. 같이 이야기 해보고 싶으신 분이 있다면 댓글에 남겨주세요! 혹은 메일(ksy90101@gmail.com)로 연락주세요!
- 멘토링 및 교육에 대해서 같이 이야기 나눠보고 싶으신 분도 연락주세요!!
728x90
728x90
'Backend > Ruby' 카테고리의 다른 글
[번역] Ruby Modules(루비 모듈) (4) | 2024.09.20 |
---|---|
[번역] What’s new in Ruby 3.3(Ruby 3.3의 새로운 기능) (0) | 2023.12.24 |
ruby의 !(Exclamation mark / Bang)의 의미 (4) | 2023.11.24 |
ruby의 배열내의 카운트를 효과적으로 세는 법 (3) | 2023.11.17 |
Numeric의 zero? & positive? & negative? (0) | 2023.01.29 |