본문 바로가기

Swift

(9)
Swift - 제네릭 제네릭은 어떤 자료형이든 다 받는다 // 보통로 많이 사용 struct MyArray { // 제네릭을 담은 빈 배열 var elements : [SomeElement] = [SomeElement]() // 초기화 해줌 // 메모리 할당을 위해 인스턴스를 생성하는것 //따로 안해주면 내부에서 정의된 초기값 사용 init(_ elements: [SomeElement]) { self.elements = elements } } struct Friend { var name : String } //숫자로 된 배열 var mySomeArray = MyArray([1,2,3]) print(mySomeArray) var myStringArray = MyArray(["가","나","다"]) print(myStringAr..
Swift - 함수 매개변수 이름 func first(name : String) -> String { return "안녕하세요 \(name) 입니다" } first(name: "읭") func second(with name : String) -> String { return "안녕하세요 \(name) 입니다" } second(with: "읭읭") func third(_ name : String) -> String { return "안녕하세요 \(name) 입니다" } third("읭읭읭") 함수의 매개변수이름을 함수내부 이름으로 하는경우 새롭게 정하는경우 (함수 내부에서는 name ) 아예없는경우
Swift - 프로퍼티 옵저버 var myAge = 0 { willSet { print("값이 설정될 예정 myAge : \(myAge)") } didSet { print("값이 설정됨 myAge: \(myAge)") } } myAge = 10 myAge = 22 값이 설정될 예정 myAge : 0 값이 설정됨 myAge: 10 값이 설정될 예정 myAge : 10 값이 설정됨 myAge: 22 이렇게 값이 설정되는 시점에 접근 할 수있다.
Swift - class VS struct struct struct YoutuberStruct { var name : String var subscriberCount : Int } var devJeong = YoutuberStruct(name: "김대리", subscriberCount: 99999) var devJeongClone = devJeong // 출력값> 김대리,99999 //복사된값을 변경한것 원래값은 바뀌지 않는다 //devJeong.name 은 김대리 그대로 devJeongClone.name = "호롤롤로" //출력값> 이름: 호롤롤로 devJeong.name class class YoutuberClass { var name : String var subscribersCount : Int // init 으로 매개변수를 가진 생성자 ..
Swift - Unwrap 옵셔널 변수 // 옵셔널이란? // 값이 있는지 없는지 모름. var someVariable : Int? = nil if someVariable == nil { someVariable = 90 } // 언랩핑이란? // 감싸져 있는 옵셔널 벗기는것 // 언랩핑 구문 알맹이만 나옴 if let otherVariable = someVariable { print("값이 있습니다 :\(otherVariable)") } else { print("값이 없습니다") } someVariable = nil //someVariable 이 비어있으면 즉 값이 없으면 기본값으로 요놈을 넣겠다. let myValue = someVariable ?? 10 // someVariable 이 nil로 값이 없으므로 10을 넣어줌 //값이 있는지 ..
Swift - enum 열거형 열겨형이란? 하나의 주제로 연관된 데이터들이 각 케이스로 구성된 자료형 객체 다음 예제는 학교라는 주제에서 초,중,고 나뉨 // 값이 없는 경우: 그냥 case 만 나눔 enum School { case elementary, middle, high } let yourSchool = School.high print("\(yourSchool)") // 각 case 각 값을 가진 경우 //.rawValue 로 값에 접근하다 enum Grade : Int { case first = 1 case second = 2 } let yourGrade = Grade.second print("\(yourGrade.rawValue)") // case 에 데이터를 우리가 넣어줌 // name 이 인자값이 된다 enum Scho..
Swift - 반복문 //콜렉션: 데이터를 모아둔것 //콜렉션의 종류: array, set ,dictionary, tuple //정수데이터를 가진 배열 var myArray : [Int] = [1,2,3,4,5,6,7,8,9,10] //베열의 각 요소를 item 에 담는다 //배열의 요소 갯수만큼 반복함 for item in myArray { print("item : \(item)") } // 여기서 where 은 특정 패턴과 결합하여 조건을 추가한다 // item 5초과 라는 조건을 준다 for item in myArray where item > 5 { print("5보다 큰수") } //0,1,2,3,4.5 for i in 0...5 { print(i) } //0,1,2,3,4 for index in 0..
Swift - if var isDarkMode : Bool = false if isDarkMode == true { print("다크모드입니다") } else { print("다크모드가 아닙니다.") } //isDarkMode 같음 isDarkMode == true var title : String = isDarkMode == true ? "다크모드 입니다" : "다크모드가 아닙니다" // ? 가 조건이 되는부분 만족하면 ? 이어오는 부분 실행 :는 else 라 보면 됨 var title : String = isDarkMode ? "다크모드임" : "다크모드아님" print("title : \(title)") 부정은 앞에 ! 붙히면된다 var title : String = !isDarkMode ? : "다크모드아님" : "..