본문 바로가기

기능

(3)
[Swift] Array(String())가 초기화되는 방식이 String.Element? Array(String(123)) // ["1", "2", "3"]이렇게 나오는 이유는 뭘까 …? 당연히 ["123"]값이 나올줄 알았는데…Array() 로 초기화하는 과정에서 각 요소들을 하나하나 배열로 반환한것 같았다. 그래서 찾아보았다. var numbers = Array(String(123))에 값을 넣고 변수에 option키를 눌러 타입을 자세히 확인해보았는데 [String.Element]타입에 배열이었던것이다. 아니… String은 알겠는데… 거기서 .Element는 제네릭인가… 하고 또 클릭해서보니 typealias Element = Character타입으로 지정되어있었다. 고로 String.Element는 결국 Character타입의 요소라고 볼 수있나? 아무튼 마무리를 지어보면 123을 ..
[Swift]옵셔널(Optional)에 대해 알아보자! 주의 : Swift프로그래밍 3판 야곰책을 참고했으며 배우는 과정이기에 오탈자나 정확하지않는 정보가 있을 수 있습니다. 카테고리 - 옵셔널 - 옵셔널 사용 - 옵셔널 추출 - 옵셔널 바인딩 - 암시적 추출 옵셔널 옵셔널 옵셔널은 스위프트의 특정 중 하나인 안정성을 문법으로 담보하는 기능이다. 기존에 C언어나 Objective-C 에서는 찾아볼 수 없었던 콘셉트 이기도하다. 옵셔널은 단어 뜻 그대로 '선택적인', 즉 '값이 있을수도, 없을 수도 있음'을 나타내는 표현이다. 이는 '변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없다. 즉, 변수 또는 상수의 값이 nil일 수도 있다' 는 것을 의미한다. 그리고 옵셔널이 아닌 값을 철저히 다른 타입으로 인식하기 대문에 컴파일할때 바로 오류를 걸러낼 수 있다..
[Swift]인스턴스메서드와 타입메서드의 개념과 차이점 주의 : 영문서 번역 중 오역이 있을 수 있으며 정확하지않는 정보가 있을 수 있습니다. 인스턴스메서드와 타입메서드의 차이는 무엇일까 ? 인스턴스 메서드란 특정한 enum 이나 struct, class의 인스턴스로 속해 있는 함수이다. 그것은 인스턴스를 돕기위한 기능이고 프로퍼티인스턴스를 수정하고 접근하는 방법을 제공하거나 또는 인스턴스를 연결시키는 기능으로써 사용된다. 인스턴스메서드는 정확히 함수의 구문과 정확이 일치한다. 인스턴스 메서드는 위에서본것과 같이 특정 타입의 인스턴스 위에서 호출을 할 수 있다. 근데 타입메서드는 타입자체위에서 호출할 수 있다. 이런걸 타입메서드라도 부르며 이는 함수 func 앞에 static이라고 써줌으로써 나타낼 수 있다. Class는 키워드 앞에 class라고 사용할 수..