일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 라데온 베가
- 라데온
- radeon vega
- ryzen zen2
- 라이젠 젠2
- Radeon
- Zen2
- Ryzen
- navi
- 나비
- 젠2
- vega 7
- Rx5000
- 라이젠 오버클럭
- 암드
- 라데온 나비
- vega
- 암드 신제품
- 젠2 오버클럭
- 라이젠 오버
- 라이젠 젠2 오버
- Rx5700
- 라이젠
- ryzen gen2
- 라데온 신제품
- 베가
- AMD
- 암드 라이젠 오버클럭
- Today
- Total
목록프로그래밍/Swift (4)
SW
옵셔널(Optional) : nil값을 다룰 수 있게 한다.옵셔널을 사용하려면 ' ? ' 를 사용하여 선언한다. ex ) Int? / String? 이런식으로 선언한다. 0과 nil과 는 다르다. 예를 들어 어떠한 상자 안에 아무것도 들어있지 않는 상태가 nil이다. 0은 0이라는 숫자가 들어 있는 것이다. 사람이 볼 경우에는 존재하지 않다고 생각 할 수 있지만 기계는 그렇지 않다고 한다.. 옵셔널 강제추출 (Unwrapped Optional) 강제추출은 ! 를 사용한다.?와 !의 가장 큰 차이점은 값을 강제로 추출하기 때문에 옵셔널에 값이 없다면 런타임 오류가 발생한다는 점이다.또 다른 점을 이야기 하자면 옵셔널에서 값을 강제 추출해 반환하기 때문에 반환하기 때문에 반환 값이 옵셔널이 아니라는 점이다...
자동 클로저 : 함수의 전달인자로 전달하는 표현을 자동으로 변환해주는 클로저를 자동 클로저 라고 한다. 자동 클로저는 전달인자를 갖지 않는다.자동 클로저는 호출 되었을 때 자신이 감싸고 있는 코드의 결괏값을 반환한다.자동 클로저는 함수로 전달하는 클로저를 (소괄호와 중괄호를 겹쳐서 써야하는) 어려운 클로저 문법을 사용하지 않고도 클로저로 사용할 수 있도록 문법적 편의를 제공한다. 자동 클로저는 호출되기 전까지는 클로저 내부의 코드가 동작하지 않는다. 따라 연산을 지연시킬 수 있다. 아래 예제코드를 보며 확인해 보자 var customersInLine: [String] = ["YoangWha", "SanggGon", "SungHe", "Romi"]print(customersInLine.count) // 4..
탈출 클로저(Escaping Closure) 탈출(Escape) 클로저 ? : 함수의 전달인자로 전달한 클로저가 함수 종료 후에 호출될 경우 클로저가 함수를 탈출한다. 클로저를 매개변수로 갖는 함수를 선언할 때 매개변수 이름의 콜론(:) 뒤에 @escaping 키워드를 사용하여 클로저가 탈출하는 것을 허용한다고 명시해줄 수 있다. 예를 들어 비동기 작업을 실행하는 함수들은 클로저를 Completion handler 전달인자로 받아온다. 비동기 작업으로 함수가 종료되고 난 후 작업이 끝나고 호출할 필요가 있는 클로저를 사용해야 할 경우에 탈출 클로저(Escaping Closure)가 필요하다. ! @escaping 키워드를 따로 명시하지 않는다면 매개변수로 사용되는 클로저는 기본적으로 비탈출 클로저이다, ..
클로저는 자신이 정의된 위치의 주변 문맥을 통해 상수나 변수를 획득(Capture)할 수 있다.값 획득을 통해 클로저는 주변에 정의한 상수나 변수가 더 이상 존재하지 않더라도 해당 상수나 변수의 값을 자신 내부에서 참조하거나 수정할 수 있다.그러기에 클로저가 비동기 작업에 많이 쓰인다. 비동기 콜백(Call-Back)을 작성하는 경우, 현재 상태를 미리 획득해두지 않으면, 실제로 클로저의 기능을 실행하는 순간에는 주변의 상수나 변수가 이미 메모리에 존재하지 않는 경우가 발생한다. 이 부분을 해결하기 위해 중첩 함수를 사용한다.중첩 함수로 주변의 변수나 상수를 획득해 놓을 수 있다. 즉, 자신을 포함하는 함수의 지역변수나 지역상수를 획득할 수 있다. func makeIncrementer(forIncreme..