isEmpty vs count == 0

2019-10-25
Swift

안녕하세요 도미닉입니다.

오늘은 isEmpty 와 count == 0 을 어떻게 사용하는지 설명드리고 이 두가지를 비교해보겠습니다.

같이 보시죠.

isEmpty 은 무엇인가?

데이터 타입을 문자열로 선언하면 기본적으로 사용할 수 있는 메소드 중에 isEmpty 가 있습니다.

이 메소드는 말 그대로 이 문자열이 비어있는지 확인하여 Bool 값을 리턴합니다.

count == 0 은 무엇인가?

데이터 타입을 문자열로 선언하면 기본적으로 사용할 수 있는 메소드 중에 count 가 있습니다.

이 메소드는 말 그대로 문자의 갯수를 확인하여 Int 로 리턴합니다.

count == 0 이라는 비교를 통해 문자열의 갯수가 0 인지 확인합니다.

isEmpty 와 count == 0 의 공통점

isEmpty 와 count == 0 은 둘 다 문자열이 비었는지 확인하는 기능을 수행하는데요.

예제 코드를 보시면 똑같이 Bool 값이 생기는 것을 보실 수 있었습니다.

isEmpty 와 count == 0 의 차이점

isEmpty 는 문자열이 비었는지 한번에 확인하기 때문에 O(1) 의 시간 복잡도를 가집니다.

count == 0 은 문자열 버퍼를 확인하여 몇개 인지 확인하기 때문에 O(N) 의 시간 복잡도를 가집니다.

문자열의 길이가 짧을 때는 두가지 방법의 속도 차이가 별로 나지 않습니다.

문자열의 길이가 길어질 수록 count 메소드의 속도가 느려지는 현상이 있었습니다.

text.isEmpty 는 한번에 이 텍스트가 비었는지 확인한다고 읽어집니다.

text.count == 0 은 text 라는 문자열이 비었다는 것인지 바로 읽어지지 않는 점도 차이점이라고 할 수 있겠습니다.

정리

isEmpty 와 count == 0 이라는 문자열이 비었는지 확인하는 메소드에 대해서 알아봤습니다.

두가지 방법을 비교도 해봤습니다.

차이점을 확인해본 결과 isEmpty 가 조금 더 좋은 방법이라고 생각합니다.

읽어주셔서 감사합니다.

참고 : https://medium.com/better-programming/strings-comparison-isempty-vs-count-0-be80d701901b