목록Swift/Swift 기초문법 (75)
HIT해
Getter 사용 예시class Friend { var name : String var age : Int var info : String { get{ return "내 친구 : \(name) 나이 \(age)" } } init(name: String, age : Int) { self.name = name self.age = age }}let myFriend = Friend(name: "자우림", age : 25)// 이때 info 초기값이 설정되어 있지 않다.// 그래서 info getter를 생성해준다.myFriend.info // 내 친구 자우림 나이 25 Getter는 값을 설정할때 ..
import UIKit// 프로토콜은 약속// 뭔가를 강제protocol Talking { func sayHi()}class BestTalk : Talking { func sayHi() { print("최고의 대화였어") }}class OldTalk : Talking { func sayHi() { print("오랜만의 대화였어") }} 두 클래스 모두 sayHi라는 함수를 가지고 있어야만한다. 의존성 주입을 해보자import UIKit// 프로토콜은 약속// 뭔가를 강제protocol Talking { var saying : String { get set } func sayHi() }class BestTalk : Talking {..
dictionary grouping이란?dictionary값들을 키 또는 값 타입에 따라 쉽게 분류해주는 함수다. 사용예시import UIKitenum FriendType { case normal, best}struct Friend { var name : String var type : FriendType}var friendList = [ Friend(name: "철수", type: .normal), Friend(name: "영희", type: .best), Friend(name: "제임스", type: .best), Friend(name: "수잔", type: .normal)]// grouping : 나누려는 콜렉션을 넣어준다. by : 타입에 따라서 분류해라//..
사용예시class Friend{ // 1. func sayHi(){ print("안녕!") } // 2. class func sayBye(){ print("바이바이") } // 3. static func sayHoho(){ print("호호") }}// 1.// 호출하려면 인스턴스를 만들어야한다// 클래스를 메모리에 올려서 객체 인스턴스를 만들어야한다.let myFriend = Friend()myFriend.sayHi()// 2.// 메모리에 올리지 않아도 바로 호출할 수 있는 메소드// 오버라이드가 가능하다.Friend.sayBye()// 3.// class func과 같이 클래스명.함수명으로 호출이 가능하다.// ..
compactMap이란고차함숭서 nil일 경우에 해당하는 아이템이 nil이 나오면 내뱉지 않게 하는 것이다. flatMap이란배열 안에 배열이 있는 형태를 납작하게 만드는 고차함수다.1차원 배열로 만든다!let myFriends = [ ["철수"], ["짱구","훈이"], ["유리","멩구"] ] let flatMapped = myFriends.flatMap{ (item:[String]) in return item}print(flatMapped) // ["철수","짱구","훈이","유리","멩구"] 이런 문법을 왜 공부해야할까? Swift안에 여러 기능들이 있는데 제공하는게 많으면 많을 수록 좋다.Why? 우리는 이런 도구를 가져다가 사용하는 직업을 가질 것이기 때문이다.언어라는 ..
map이란?콜렉션(데이터의 모음) 이나 배열, set, dictionary 등의 형태를 바꾸는 고차함수. 배열의 요소들 하나하나의 형태를 T 다른 형태로 바꾸고 이를 배열 형태로 반환한다. 1. Arraylet myNumbers : [String] numbers.map { return "내 숫자 : \($0)"}//let myNumbers : [String] numbers.map { (aNumber : Int) in// return "내 숫자 : \(aNumber)"//} 2. Dictionarylet myPetDictionary = ["고양이" : "야옹, "강아지" : "멍멍"]// let myPets : [String] = myPetDictionary.map { (animal:String, c..
foreach enumerated이란?foreach를 돌릴때 index도 같이 가져오게 하는 방법이다. var myFriendsArray : [String] = ["짱구","철수","훈이","유리","멩구"]var friendsWithIndex : [String] = []for (index, aFriend) in myFriendsArray.enumrated() { print("index: \(index), item : \(aFriend)") friendWithIndex.append("\(index).번 \(aFriend)")}
private (set) 이란?외부에서 값을 변경하는 것을 방지하는 키워드다 struct MyPet{ var title : String = "타이틀없음" // public과 같음, 바깥에서도 접근이 가능. private (set) var name :String = "이름없음" // 클래스일땐 안넣어도 되지만 struct에서 네임이라는 변수를 변경하려면 mutatating을 넣어줘야함 mutating func setName(to newName:String){ self.name = newName }}var myPet = MyPet()myPet.name // 이름없음myPet.title // 타이틀없음myPet.title = "호롤롤로"myPet.title // "호롤롤로" 변경..