목록분류 전체보기 (179)
study record
*이 글은 책 '스위프트 프로그래밍'을 읽고 작성한 글입니다. 오류처리란 오류처리(Error Handling)는 프로그램이 오류를 일으켰을 대 이것을 감지하고 회복시키는 일련의 과정이다. 주의할 점은 스위프트의 오류처리 기능을 통해 시스템(운영체제 등 우리가 작성하는 응용프로그램 외부)에서 발생한 오류를 처리할 수 있는 것은 아니라는 것이다. 오류의 표현 스위프트에서 오류는 Error라는 프로토콜을 준수하는 타입의 값을 통해 표현된다. Error 프로토콜은 사실상 요구사항이 없는 빈 프로토콜이지만, 오류를 표현하기 위한 타입(주로 열거형)은 이 프로토콜을 채택한다. 스위프트의 열거형은 오류의 종류를 나타내기에 아주 적합한 기능이다. 연관 값을 통해 오류에 관한 부가 정보를 제공할 수도 있다. enum V..
import Foundation func BJ2740(){ var arrSizes = readLine()!.split(separator: " ").map{ Int($0)! } var arrA: [[Int]] = Array(repeating: Array(repeating: 0, count: arrSizes[1]), count: arrSizes[0]) for i in 0..
import Foundation func BJ1292(){ let nums = readLine()!.split(separator: " ").map{ Int($0)} var arr: [Int] = [] var count = 1 var n = 1 for _ in 1...1000 { arr.append(n) if count < n { count += 1 }else{ n += 1 count = 1 } } var sum = 0 for i in nums[0]!...nums[1]! { sum += arr[i-1] } print(sum) } func BJ1292plus(){ // 더 깔끔한 풀이 var arr: [Int] = [] for i in 1..
*이 글은 책 “스위프트 프로그래밍”을 읽고 작성한 글입니다. 매번 전달할 때마다 값을 복사해 전달하는 값 타입과는 다르게 참조 타입은 하나의 인스턴스가 참조를 통해 여러 곳에서 접근하기 때문에 언제 메모리에서 해제되는지가 중요한 문제이다. 인스턴스가 적절한 시점에 메모리에서 해제되지 않으면 한정적인 메모리 자원을 낭비하게 되며, 성능의 저하로 이어지게 된다. 스위프트는 프로그램의 메모리 사용을 관리하기 위해 메모리 관리 기법인 ARC를 사용한다. ARC가 관리해주는 참조 횟수 계산은 참조타입인 클래스의 인스턴스에만 적용된다. 구조체나 열거형은 값 타입이므로 참조 횟수 계산과 무관하다. 즉, 구조체나 열거형은 다른 곳에서 참조하지 않으므로 ARC로 관리할 필요가 없다. ARC란 ARC 기능은 이름에서 알..