SWIFT
[Swift] 프로퍼티(Property) 저장, 지연저장, 연산, 읽기 전용 연산,
프로퍼티(Property) 저장 프로퍼티(Stored Properties) 연산 프로퍼티(Computed Properties) 타입 프로퍼티(Type properties) 저장프로퍼티 저장프로퍼티는 클래스나 구조체에서 변수나 상수를 저장하는 가장 단순한 프로퍼티이다. 기본 형태 struct person1{ let name: String = "jake" //상수 저장 프로퍼티 var age: Int = 20 //변수 저장프로퍼티 } class person2{ let name: String = "jake" var age: Int = 20 //이니셜라이저 지정 // 초기값을 지정하지 않았거나, 지정했더라도 후에 값 변경이 있을 경우 이니셜라이저를 지정해주어야 한다. init(age: Int){ self.age..
[Swift] 진법 변환
다른 진법의 수에서 다른 진법의 수로 변환이 가능하다 10진수 -> 2진수 String(10진수, radix: 2) - 10진수의 값을 2진수의 String으로 변환함. - 10진수: Int, 결과값: String - radix값을 바꾸면 10진수에서 다른 진수로 변환이 가능하다. 2진수 -> 10진수 Int(2진수, radix: 2) -2진수 값을 10진수의 Int로 변환함. -2진수: String, 결과값: ? -결과가 옵셔널인 이유는 숫자로 바꿀 수 없는 문자일 때 nil로 처리되기 때문
[SWIFT] 문자열 처리 메서드 Split
split 메서드는 다양한 파라미터를 지원한다. separator: 쪼개려는 문자단위를 받는다. maxSplits: 지정한 문자 단위로 얼마나 쪼갤지를 지정한다. omittingEmptySubsequences: Bool값으로 결과값에서 빈 시퀀스의 유무를 설정한다. split는 말 그대로 문자열을 특정 문자 기준으로 쪼갤 수 있다. 반환형은 String타입을 [Substring]으로 반환하게 된다. split은 또한 swift 표준 라이브러리에 들어가 있다. 그렇기 때문에 따로 import Foundation을 할 필요가 없다. 사용 예) let S = "1 -1 4 2 -6 10 2" var result1 = S.split(separator: " ") var result2 = S.split{$0 == ..
[SWIFT] 고차함수 Reduce(결합)
reduce는 데이터를 합쳐주기위해 사용한다. 기존 컨테이너에서 내부의 값들을 결합하여 새로운 값을 만든다. reduce를 한번에 이해하기엔 숫자 합 예제가 최고라고 한다. for - in let numberArray = [1,2,3,4,5,6,7,8,9,10] var sum = 0 for i in numberArray{ sum += i } print(sum) //55 reduce let numberArray = [1,2,3,4,5,6,7,8,9,10] var sum = sumberArray.reduce(0){$0 + $1} print(sum) //55
[SWIFT] 고차함수 Filter(추출)
filter는 데이터를 추출하고자 할 때 사용한다. 기존 컨테이너에서 내부의 값을 걸러 새로운 데이터를 만든다. filter또한 map과 마찬가지로 for-in문과 크게 다르지 않다. filter의 형태 array.filter(isIncluded: T throws -> T) T타입의 isIncluded를 받아 새로운 T형태의 컨테이너를 생성한다. for - in let stringArray = ["크롬", "직업", "아마존", "데이터", "구글", "아이폰"] var threeCountArray: [String] = [] for st in stringArray{ if(st.count) == 3{ threeCountArray.append(st) } } print(threeCountArray) //["아..
[SWIFT] 고차함수 Map
Map(변형) map은 데이터를 변형하고자 할 때 사용된다. 기존 데이터를 변형하여 새로운 컨테이너를 만드는데, 기존 데이터는 변형되지 않는다. 특히 map은 기존의 for-in구문과 큰 차이가 없지만, map 사용시 다음과 같은 이점이 있다. - 코드의 간결성 - 재사용성 용이 - 컴파일러 최적화 성능 array.map(transform: T throws -> T) 사용 예) //숫자 배열을 받아와서 2배의 배열을 리턴하는 함수 func multiple(_ numbers: [Int) -> [Int]{ return numbers.map(){$0 * 2} }