swift(36)
-
What's new in Swift(wwdc2022) [2]
옵션을 언래핑하는 경우 언래핑 값이 동일한 이름을 가지도록 하려면 오른쪽만 빼 버리면 된다? 그럼 Swift는 똑같다고 여길 겁니다. (가드문도 마찬가지입니다. 그 과정에서도..) 복잡한 클로저에도 결과 유형을 수동으로 지정하지않고도 do-catch 또는 if else를 사용하거나 인쇄 호출을 추가할 수 있습니다. 위 사진 함수를 아래 사진의 let regex = ~~~~~ 로 변형 시켰다.... 위 변수를 아래 사진 순서대로 변형이 되었다.. 첫 함수인 parseLine이라는 함수가 이렇게... 함축되었다.... 너무나도 간소화 됐다. 모든 컬렉션을 포함하여 프로토콜의 이름을 쓸 수 있는 거의 모든 위치에서 기본 관련 유형으로 만들 수 있습니다. 요소 같은 관련 유형이 있는 경우 해당 유형 이름을 프로..
2022.09.08 -
What's new in Swift(wwdc2022) [1]
패키지를 확장할 때 모듈 충돌이 발생할 수 있다 그래서 Swift 5.7에서는 모듈 명확화를 도입했다. 모듈 명확화는 모듈을 정의하는 패키지 외부에서 모듈 이름을 변경할 수 있는 기능입니다. 여기 Stunnung 응용 프로그램에서 로깅 모듈을 정의하는 두 개의 패키지를 가져오자 이 둘은 충돌합니다. 이 Stunning 응용프로그램에서 문제를 해결하려면 패키지 매니페스트의 종속성 섹션에 moduleAliases 키워드를 추가하기만 하면 됩니다. 사진처럼 두 개의 다른 이름을 사용하여 이전에 이름이 같았던 모듈을 구분할 수 있습니다. 빌드 시간 swift의 소스 코드 컴파일을 조정하는 프로그램인 Swift Driver를 어떻게 재작성했는지 말씀드렸다. 작년에 재구축은 빌드 속도를 크게 높이는 매우 중요한 변..
2022.09.08 -
고차함수 map!
고차 함수의 핵심은 함수인데 매개변수인데 클로저로 받는다 그리고 매개변수를 받은 클로저를 반환하는 식으로 값을 변화시키는 식 let numberList: [Int] = [1, 2, 3, 4] var returnArray: [Int] = [] for number in numberList { returnArray.append(number * 2) } print(returnArray) //[2, 4, 6, 8] 이러한 부분에 map을 쓰게 되면. let returnArray = numberList.map({ (number : Int) -> Int in return number * 2 }) //[2,4,6,8] 위와 똑같이 나타난다. map을 사용하여 - 초기 빈 배열을 생성할 필요가없다 -시간을 절약할 수 있..
2022.09.07 -
lazy var에 대해 알아보자
lazy는 무엇이지 lazy는 인스턴스를 생성하는 시점에 값을 부여하고 싶지 않은 변수에 대하여 붙여주는 키워드입니다. lazy라는 키워드가 붙으면 초기 값을 주지 않고, 첫 번째 호출 때 초기화를 해주겠다는 의미이기 때문에 변수만 가능해요. let으로 선언하면 나중에 값을 바꾸지 못하니까요 lazy는 초기 init시에 초기화되는 것이 아니라 호출될 때 생성이 되면서 메모리에 올라가며 이후 같은 변수를 사용 시 다시 초기화가 진행되지 않고 이전에 생성된 변수를 그대로 사용하더라고요. 또한 클래스나 구조체 내에서만 사용이 가능하다는 특징이 있었습니다. lazy를 사용하는 이유 - 지연 저장을 통해 메모리 낭비를 줄임 - 초기화 시점이 같을 때 접근할 수 있음 바로 메모리에 올리는 것이 아니라 사용할 때 메..
2022.09.06 -
메모리 영역을 알아보자!
1. 메모리 구조 메모리의 구조부터 알아봅시다. 먼저, 프로그램이 실행되면 운영체제(OS)는 메모리(RAM)에 이 프로그램을 위한 공간을 할당해 줌 근데 그 공간은 다음과 같이 총 4가지(Code, Data, Heap, Stack)으로 나뉘어져 있습니다. 코드 영역 가장 위쪽에 자리 잡은 코드 영역에 대해 알아보겠습니다. 본인이 작성한 소스 코드가 저장되어있는곳입니다. 컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저장됩니다. (컴퓨터는 0,1로 이루어진 언어다...대단하다..) 데이터 영역 전역변수, static 변수가 저장된다. 프로그램 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리가 해체된다. 실행 도중 변수 값이 변경될 수 있으니 Read-Write로 지정..
2022.07.25