ios 66

[Swift] 옵셔널 : 옵셔널 추출

💡 옵셔널 단어 뜻 그래도 '선택적인', 즉 값이 '있을 수도, 없을 수도 있음'을 나타내는 표현 '변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없다.' 즉, 변수 또는 상수의 값이 nil일 수도 있다는 것을 의미 옵셔널 변수의 선언 및 nil 할당 var myName: String? = "yejin" print(myName) // yejin //옵셔널 타입의 값을 print 함수를 통해 출력하면 //Optional("yejin")이라고 출력되는 것이 정상 //다만, 차후의 주석표현의 편의를 위해서 //Optional()은 생략하고 값만 표기하도록 하겠다. //또, 옵셔널 타입의 값을 print 함수의 매개변수로 전달하면 //컴파일러 경고가 발생할 수 있다. //정상이므로 놀라지 않아도 된다. my..

Swift 2022.03.17

[Swift] 함수 : 입출력 매개변수 활용, 데이터 타입으로써의 함수, 중첩 함수, @discardableResult

🚫 공부하다가 기록해두면 좋겠다, 몰랐던 거다 싶은 내용을 위주로 정리했습니다. 1️⃣ 입출력 매개변수를 활용 값이 아닌 참조를 전달하려면 입출력 매개변수를 사용한다. 원래 값을 변경한다는 이야기! 1. 함수를 호출할 떄, 전달인자의 값을 복사합니다. 2. 해당 전달인자의 값을 변경하면 1에서 복사한 것을 함수 내부에서 변경합니다. 3. 함수를 반환하는 시점에 2에서 변경된 값을 원래의 매개변수에 할당합니다. var numbers: [Int] = [1,2,3] func nonReferenceParameter(_ arr: [Int]){ var copiedArr: [Int] = arr copiedArr[1] = 1 } func referenceParameter(_ arr: inout[Int]){ arr[1]..

Swift 2022.03.16

[Swift] 열거형 ( 항목 순회, 순환 열거형 )

연관 값을 같는 열거형 enum MainDish { case pasta(taste: String) case pizza(dough: String, topping: String) case chicken(withSource: Bool) case rice } var dinner: MainDish = MainDish.pasta(taste: "크림") print(dinner) dinner = .pizza(dough: "치즈크러스트", topping: "불고기") print(dinner) dinner = .chicken(withSource: true) print(dinner) dinner = .rice print(dinner) // pasta(taste: "크림") // pizza(dough: "치즈크러스트", to..

Swift 2022.03.15

[Swift] 컬렉션형 : 배열, 딕셔너리, 세트

Swift에서는 튜플 외에도 많은 수의 데이터를 묶어서 저장하고 관리할 수 있는 컬렉션 타입을 제공한다. 배열 딕셔너리 세트 1️⃣ 배열 var names: Array = ["yejin", "chulsoo", "yonghee", "yejin"] // Array == [String] var names: [String] = ["yejin", "chulsoo", "yonghee", "yejin"] var emptyArray: [Any] = [Any]() //Any를 데이터 요소로 갖는 빈 배열을 생성 var emptyArray: [Any] = Array() // 위 선언과 같은 동작 var emptyArray: [Any] = [] // 배열과 타입을 명시해줬다면 []만으로도 빈 배열을 생성할 수 있다. pri..

Swift 2022.03.15

[Swift] CustomStringConvertible > description

Swift의 문자열 보간법을 공부하던 중, CustomStringConvertible 프로토콜의 description 속성에 대한 설명이 간략하게 나와있어서 정리해보았다. 1️⃣ CustomStringConvertible ? 공식문서에 따르면 문자열 보간시 사용되는 프로토콜! 이 프로토콜로 채택한 타입은 인스턴스를 문자열로 변환할 때 사용할 고유의 표현을 제공한다고 한다. 2️⃣ CustomStringConvertible의 description 속성 ? 인스턴스를 description 속성을 사용하여 문자열로 치환할 수 있다는 것 같다. 이해가 잘 되지 않으니, 공식문서의 소스코드를 살펴보자! struct Point { let x: Int, y: Int } let p = Point(x: 21, y: 30..

Swift 2022.03.14

[Swift] 스위프트의 함수형 프로그래밍 패러다임

💡 함수형 프로그래밍 패러다임? 프로그램이 상태의 변화 없이 데이터 처리를 수학적 함수 계산으로 취급하고자 하는 패러다임 함수 자체의 응용을 중요하게 여김 순수하게 함수에 전달된 인자 값만 결과에 영향을 주므로 상태 값을 갖지 않고 순수하게 함수만으로 동작 어떤 상황에서 프로그램을 실행하더라도 일정하게 같은 결과를 도출할 수 있음! 함수형 프로그래밍의 장점 프로그램이 동작하는 흐름에서 상태(값)이 변하지 않으면 함수 호출이 각각 상호 간섭없이 배타적으로 실행되므로 병렬처리할때 부작용이 거의 없다. 또한, 필요한 만큼 함수를 나누어 처리할 수 있도록 스케일 업할 수 있기 때문에 대규모 병렬처리에 큰 강점! 멀티 코어 혹은 여러 개 연산 프로세서를 사용하는 시스템에서 효율적인 프로그램을 만들기 쉽다. 상태변..

Swift 2022.03.14