본문 바로가기

🍎 Swift/iOS 문법 노트19

[🍎 Swift 문법] 고차함수 Map, Filter, Reduce Map내부의 데이터를 가공하여 새로운 콜렉션을 생성하는 것지금까지의 경험으로는 주로 배열에 사용되는 것 같다  배열의 모든 요소에 1을 더하는 map 함수 예제let numbers = [1, 2, 3, 4, 5]let numbersPlusOne = numbers.map({ $0 + 1 })print(numbersPlusOne) // [2, 3, 4, 5, 6] 문자열 배열 내 요소의 길이를 구하는 map 함수 예제let words = ["apple", "banana", "cherry"]let wordLengths = words.map { $0.count }print(wordLengths) // [5, 6, 6] 딕셔너리의 값을 변환하는 map 함수 예제let scores = ["A": 50, "B": 7.. 2024. 7. 24.
[🍎 Swift 문법] sort 와 sorted sort() 함수원본 배열을 오름차순으로 정렬해준다(직접 수정)내림차순으로 정렬 시 sort(by: >)를 사용한다 오름차순var numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]numbers.sort()print(numbers) // 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9] 내림차순var numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]numbers.sort(by: >)print(numbers) // 출력: [9, 6, 5, 5, 4, 3, 2, 1, 1] sorted() 함수원본 배열을 건드리지 않고 복사본을 만들어서 오름차순으로 정렬한 후 정렬된 요소를 반환한다(사본 생성)사본 생성 시 메모리를 많이 먹게 되므로 원본 배열이 중요한 경우 sor.. 2024. 7. 9.
[🍎 Swift 문법] 제어문 전환 명령어 제어문 전환 명령어란?제어문 전환 명령어는 프로그래밍에서 코드의 흐름을 변경하거나 특정 조건에서 빠져나갈 수 있게 해주는 명령어다코드의 흐름을 제어하여 프로그램이 원하는 대로 동작하도록 하는 데 유용하게 사용된다스위프트에서 주요 제어문 전환 명령어는 break, continue, return, fallthrough, throw가 있다 break반복문이나 switch 문을 즉시 종료한다continue현재 반복 주기를 건너뛰고 다음 반복으로 넘어간다return함수를 종료하고 값을 반환한다fallthroughswitch문에서 다음 case 블록으로 넘어간다throw오류를 던져 예외 처리를 수행한다 01. break break는 반복문이나 switch 문을 즉시 종료한다이 코드는 1부터 4까지 출력하고, i가 .. 2024. 6. 27.
[🍎 Swift 문법] if let & guard let 변수에 값이 있을지 없을지 모르는 상황에서는 Optional을 사용하고,그 값을 안전하게 가져오기 위해 Optional Binding을 사용해서 값을 Unwrapping 한다 여기서 옵셔널 값을 안전하게 추출하기 위해 if let & guard let을 사용한다 01. if let값이 있는 경우와 값이 없는 경우(nil)를 체크한다let 상수에 옵셔널로 할당된 값을 할당함으로서 옵셔널을 벗기는 작업을 진행한다 if let은 옵셔널 바인딩으로 특정 값이 존재하는지 확인하고, 그 값이 존재하는 경우에만 특정 코드를 실행하도록 한다//변수 optionalValue를 Int옵셔널로 선언var optionalValue : Int?//'2' 라는 값이 있어도 없을 수 있는 경우를 대비해 Optinal(2)로 출력됨.. 2024. 6. 27.
[🍎 Swift 문법] 타입 캐스팅 타입 캐스팅이란?변수나 객체의 타입을 다른 타입으로 변환하는 프로세스01. is타입을 체크하는 연산자비교 결과를 bool 타입을 반환한다(타입 체킹)let char: Character = "A" print(char is Character)// 출력값: trueprint(char is String) // 출력값: falselet bool: Bool = trueprint(bool is Bool) // 출력값: trueprint(bool is Character)// 출력값: false  02. as, as!, as?인스턴스의 "타입"을 확인 하거나, 해당 인스턴스를 슈퍼 클래스(부모 클래스)나 하위 클래스(자식 클래스)로 취급하는 방법asas 연산자는 컴파일 단계에서 캐스팅이 실행됩니다. 따라서 항.. 2024. 6. 25.
[🍎 Swift 문법] 프로퍼티 옵저버 01. didSet - 프로퍼티 값이 저장(변경)된 직후에 호출- 이전 프로퍼티의 값이 기본 매개변수 이름인 'oldValue' 로 제공 02. willSet - 프로퍼티 값이 저장(변경)되기 직전에 호출- 새로운 프로퍼티의 값이 기본 매개변수 이름인 'newValue' 로 제공 var exampleProperty: Int = 0 { willSet(newExampleValue) { print("값이 \(exampleProperty)에서 \(newExampleValue)로 변경될 예정입니다.") } didSet { print("값이 \(oldValue)에서 \(exampleProperty)로 변경되었습니다.") }}exampleProperty = 10 코드 설.. 2024. 6. 11.