티스토리 뷰

Swift

Bool 변수 이름 짓기

할루루 2018. 8. 1. 00:03

https://soojin.ro/blog/naming-boolean-variables



Bool 변수의 이름을 지을 때 항상 is??? 처럼 쓰긴 했는데, 문장으로 썼을 때 보어가 아닌 목적어를 포함하게 되는 문장에선 is??? 같은 이름이 어울리지 않을 때가 있다.

위의 주소에서 예전에 Bool 변수 이름 짓는 팁을 읽었는데, 정리를 해두어야 할 것 같다.



[is 용법] -> 문장으로 썼을 때 보어를 포함하는 경우


  • is + 명사
    • (명사)인가?
      • func isDescendant(of view: UIView) -> Bool : 이것이 인자로 들어온 UIView의 자식인가?
  • is + ~ing
    • ~하는 중인가?
      • var isExecuting: Bool { get } : 현재 작업이 진행중인가?
      • var isPending: Bool { get } : 대기중인가?
  • is + 형용사
    • 단어 자체가 형용사 (opaque, readable, visible 등)
    • 과거분사 (hidden, selected, highlighted, completed 등)
      • 변수명을 지을 때 동사의 과거분사 형태를 찾아보자.
  • 주의! is + 동사원형
    • var isEdit: Bool : ?????
      • isEditable, isEditing, canEdit 등으로 고쳐쓸 수 있을 것이다.



[조동사 용법]

  • 조동사 + 동사원형 형태로 사용해야 한다.
    • can : ~할 수 있는가?
      • var canBecomeFirstResponder: Bool { get } : first responder가 될 수 있는가
    • should, will : ~할 것인가? ~해야 하는가?
      • var shouldRefreshRefetchedObjects: Bool { get set } : 가져온 값을 refresh할 것인가?



[has 용법]

  • has + 명사
    • ~를 가지고 있는가?
      • var hasVideo: Bool { get set } : 비디오가 포함되어 있는가?
  • has + 과거분사   
    • 현재완료 의미, is + 과거분사 와 비슷
      • var hasConnected: Bool { get } : 연결되어 있는가?




[동사원형 용법] -> 문장으로 썼을 때 목적어를 포함하는 경우


  • 3인칭 단수로 사용해야 한다. (동사원형 + s/es)
    • supports / includes / shows / allows / accepts / contains 등...
    • var allowsEditing: Bool : 편집을 허용하는가?
    • var acceptsFirstResponder: Bool
    • var preservesSuperviewLayoutMargins: Bool

  • 3인칭 단수가 중요한 이유
    • Swift API 디자인 가이드와의 일관성이 깨짐
  • mutating 함수는 동사원형, 그렇지 않은 함수는 동사 + ed/ing 사용
    • sort() 메소드는 mutating 함수.
    • sorted() 메소드는 정렬된 새로운 배열을 반환


'Swift' 카테고리의 다른 글

forEach 메소드와 for-in 루프의 차이점  (0) 2018.07.31
Swift에서 지양해야 할 세 가지 패턴  (0) 2018.05.06
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함