Swift (13) 썸네일형 리스트형 Swift - Type Casting 안녕하세요, 오늘은 TypeCasting에 대해 알아 보겠습니다. 그 전에 많은 분들이 본인이 작성한 변수에 타입이 어떤건지 확인하고 싶으실 때가 있을텐데요, 이럴때는 아래 is 연산자로 해당 변수에 타입을 확인 할 수 있습니다. A.type check operator 문법: expression is Type is 연산자로 부르기도 함. 이항 연산자임. 형식을 확인할 대상이 왼쪽 표현식에 옴. 오른쪽에는 언제나 형식이 옴. 1.연산 결과는 두 피연산자의 형식이 동일하다면 true. 2.왼쪽피연산자가 오른쪽과 동일한 상속계층이고 오른쪽이 super클래스면 true let num = 123 num is Int // true 중요: 컴파일타임이 아닌 런타임에 타입을 체크 B. type casting opera.. Swift - guard 문 안녕하세요, 오늘은 Swift에서 정말 자주 사용하는 Guard 문에 대해서 정리해 보았습니다. 제가 생각하는 Guard문의 장점은 if문과 달리 조건이 늘어날 수록 발생하는 코드 중첩을 줄일 수 있다는 건데요, 그래서 if 문 조건이 많이 중첩될 시 guard문을 사용합니다. 우선적으로 사용 문법(syntax)은 아래와 같습니다. 1.일반 문법: guard condition(Bool표현식) else { statements} 2. Optional Binding 문법: guard let name = optional expression(옵셔널 표현식) else { statements } statements Optional Binding 구현시, 주의할 사항은 if문에서는 저희가 else를 생략할 수 있으나,.. Swift - Comparison Operator (비교연산자) Swift - 비교연산자(Comparison Operator) 특징: 비교연산자는 모두 이항연산자, 결과는 항상 boolean(true or false) 형식임. 중요: 부호 두개면 값을 비교, 세개면 주소를 비교함. 비교한 조건이 맞으면 true 틀리면 false. 1.Equal to 연산자 (동등연산자) a == b 문자열 비교도 가능 “swift” == “Swift”// false 피연산자(operand)) 자료형도 일치해야 함. 2.Not equal to 연산자. a != b 두개의 값이 틀릴때 true가 됨. 3.Greater than 연산자 a > b 4. Greater than or equal to 연산자 a >= b 7 > 7 false 7 >= 7 true 5. less than a < .. Swift - In Out Parameters (입출력 파라미터) Swift 입출력 파라미터. (In-out parameters) 새로운 변수 2개 선언 var num1 = 12 var num2 = 34 func swapNumber(_ a: Int, with b: Int) { var tmp = a a = b // error b = tmp // error } a 와 b는 임시상수임. 즉, 함수 바디에서 값을 변경 할 수 없음. swapNumber(num1, with: num2) 함수 본문에는 값형식이 복사됨. INT가 값타입이기 때문. 함수 바디에서 바꿔도 두 변수에 값은 바뀌지 않음. 파라미터가 상수이기 때문에 바꾸는 것도 불가능. 바꾸눈게 가능해도 복사본이기 때문에 INT로 전달한 값(원본)을 바꾸는게 불가능. inout parameter를 사용하면 아규먼트로 전달한.. Swift - Generics(제네릭) Generic Generic을 이용해 코드를 구현하면 어떤 형식에도 유연하게 대응할 수 있음. 제네릭으로 구현한 기능과 타입은 재사용도 쉽고, 코드의 중복을 줄일 수 있음. compile타임에 자료형을 결정하지않고, runtime때 자료형을 결정 Generic Function func swapInteger(lhs: inout Int, rhs: inout) { let tmp = lhs lhs = rhs rhs = tmp } swapInteger(lhs: &a, rhs: &b) 위에 함수는 Int형식만 받음. 다른 형식이 필요하면 개별적으로 함수를 구현해야 해서 코드 중복이 발생함. ----------------------------------------------------------------------.. Swift - Self & Super Self와 Super는 형식(자료형)에 기본적으로 추가되는 특별한 속성임. self // 인스턴스 자체 접근시 사용. 인스턴스 자신. self.propertyName // 인스턴스 속성에 접근(생략도 가능) self.method() // 인스턴스 메소드에 접근(생략도 가능) self[index] // 서브스크립트 접근시 self.init(parameters) // 동일한 형식에 있는 다른 생성자 호출시 사용. 셀프생략불가. self는 인스턴스에서 자동으로 추가됨. (형식에 기본적으로 추가되는 self.) 인스턴스멤버에서 접근하면 인스턴스에 접근. 타입멤버에서 접근하면 형식에 접근. self는 현재 인스턴스에 접근하기 위한 특별한 속성이다. 단, 타입멤버에서 사용하면 인스턴스가 아닌 형식 자체에 접근함. .. Swift - 고차 함수 고차함수: 함수의 인자로 함수를 받거나 실행결과를 함수로 반환하는 것. Map: 자신을 호출할때 매개변수로 전달된 함수를 실행하여 그 결과를 다시 반환해주는 함수임. 배열, 딕셔너리, 셋에서 사용 가능. 맵을 사용하면 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 반환됨. 기존 컨테이너의 값은 변경되지 않고 새로운 컨테이너가 생성되어 반환됨. 기존 데이터를 변형하는데 사용. for - in 구문과 별반 차이 없음. 비교. for-in 구문 let numbers: [Int] = [0, 1, 2, 3, 4] var doubledNumbers: [Int] = [Int]() var strings: [String] = [String]() for number in.. Swift - Optional(옵셔널) Swift Optional(옵셔널) - Optional은 Swift 언어에서 프로그램의 안정성을 높이기 위해 도입한 개념. - 기존 프로그래밍 언어를 가지고 작업을 할때 가장 빈번히 발생하는 예외 중의 하나가 NULLPointerException임. - NULLPointerException은 주로 변수(상수)메모리의 값을 할당 하지 않은 상태에서 해당 변수나 상수에 접근시 발생. - Swift에서는 이러한 Nullpointerexception을 방지하기 위해서 Optional형식을 도입. - Optioanl 형식은 nil을 저장할 수 있도록 자료형 * nil: 값이 없다는 뜻. - optional 자료형을 만들고자 하는 경우에는 변수를 선언할 때 자료형 뒤에 ?나!를 붙여서 만듬. - optional 자.. 이전 1 2 다음