📌 목록 열거형 이란? 기본 문법 기본값 변경 할당 문법 연관 값 명시 📌 열거형 이란? 연관성이 있는 값을 모아 놓은 것을 말한다. 📌 기본 문법 enum CompassPoint: String { case north case south case east case west // case north, south, east, west -> 이렇게 한줄로도 표기 가능합니다. } var direction = CompassPoint.east // east direction = .west // west -> 여기서 타입 추론이 이미 가능해졌기 떄문에 .으로만 접근이 가능 📌 기본 값 변경 기본값은 이렇게 변경을 해주면 됩니다. enum CompassPoint: String { case north = "북" case..
📌 목록 What is extension 기본 사용 Example 📌 What is extension 기존의 클래스, 구조체, 열거형, 포로토콜에 새로운 기능을 추가하는 기능, 다만 오버라이드는 불가능 합니다. 📌 기본 사용 extension SomeType { // 추가 기능 } 📌 Example extension Int { var isEven: Bool { return self % 2 == 0 } var isOdd: Bool { return self % 2 == 1 } } var number = 3 number.isEven // false number.isOdd // true extension String { func convertToInt() -> Int? { return Int(self) } } ..
📌 목록 What is protocol Example Class 에서 주의 사항 Init 📌 What is protocol 특정 역활을 하기 위한 메서드,프로퍼티, 기타 요구사항 등의 청사진 입니다. 📌Example protocol FullyNames { var fullName: String { get set } func printFullName() } struct Person: FullyNames { var fullName: String func printFullName() { print(fullName) } } 📌 Class 에서 주의 사항 상속될 것을 앞에 써주고 그뒤에 protocol을 써줘야 합니다. class SomeClass: SomeSuperClass, FirstProtocol, Secon..
📌 목록 assert gaurd 📌asset 특정 조건을 체크하고, 조건이 성립되지 않으면 메시지를 출혁하게 할 수 있는 함수 (디버깅 모드에서만 동작) var value = 0 assert(value == 0) value = 2 assert(value == 0, "값이 0 이 아닙니다.") // assertion fail error 📌guard 뭔가를 검사하여 그 다음에 오는 코드를 실행할지 말지 결정 하는 함수 (guard 문에 주어진 조건문이 거짓일 때 실행) func guardTest(value: Int) { guard value == 0 else { return } print("HELLO WORLD") } guardTest(value: 0) // HELLO WORLD guardTest(value..
📌 목록 is as 📌 is is 는 타입을 구분할때 사용 됩니다. print("TypeCheck \(2 is Int)") // true 📌 as as 는 타입을 캐스팅 할때 사용 됩니다. as는 ! , ? 로 사용 할수 있습니다. var testType: String = "2" var testType2 = testType as? Int if(testType2 is Int?) { print("HELLO") }
📌 목차 구조체 클래스 📌 구조체 구조체는 value 타입 입니다. 따라서 다음과 같은건 불가능 합니다. struct Cat { var name: String } let cat = Cat("helllo") cat.name = "sam" // Error! 기본 문법 struct 구제체이름 { 프로퍼티와 메서드 } 예제 struct User { var nickname: String var age: Int var information2: String { get { return "\(nickname) \(age)" } set(newNickname) { nickname = newNickname } } func information() { print("\(nickname) \(age)") } } var user =..
📌 목차 nil ? null 옵셔널 옵셔널 바인딩 📌 nil ? null swift에서는 null을 nil로 표현합니다. 📌 옵셔널 값이 없는것을 표현하기 위해 ?을 붙여줍니다. var name: String? = nil; 📌 옵셔널 바인딩 위의 예제를 프린트 하면 이렇게 나옵니다. var name: String? = "Eddie"; print(name) // Optional("Eddie") 이렇게 Optional이 감싸져서 나오게 되는데 이걸 풀기 위해 두가지 방법이 있습니다. 명시적 해제 -> 강제해제 (!를 붙입니다.) var name: String? = "Eddie"; print(name) // Optional(Eddie) print(name!) // Eddie -> 비 강제 해제 (옵셔널 바인딩..
📌 목차 기본 형태 파라미터 기본 값 전달인자 레이블 가변 매개변수 📌 기본형태 func 함수명 (전달인자 레이블: 파라미터 이름: 데이터 타입) -> 반환 타입 { return 반환 값 } 예제 func sum (a: Int, b: Int) -> Int { return a + b } sum(a: 2, b :3) // 5 📌 파라미터 기본값 설정 func printName(name: String = "Eddie") { print("Hello \(name)") } printName() 📌 전달인자 레이블 func sendMessage(from myName: String, to name: String) -> String { return "Hello \(name)! I am \(myName)" } sendMe..