티스토리 뷰
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 |
댓글