[swift] 1. 스위프트의 특성 (intro)
1. 정적 바인딩 언어
파이썬과 같이 데이터 타입 추론 기능이 있지만, 스위프트는 정적 바인딩 언어
let myValue = 24
let myValue : Int = 24
2. 프로토콜
자바의 인터페이스 기능과 동일
|
1
2
3
4
|
protocol myProtocol {
var myValue : String { get }
mutating func adjest()
}
|
3. 튜플
함수나 메소드에서 두 개 이상의 값을 반환해야 한느 경우, 모아서 하나의 객체로 반환
|
1
2
3
4
|
func getItem() -> (Int, Int, Double) {
return (1, 2, 3.5)
}
var myValue : (Int, Int, Double) = getItem()
|
4. 클로저(Closure)
함수를 1급 객체로 취급하며 익명함수로 사용할 때의 간결성 제공
* 함수형 언어란? : https://ios-development.tistory.com/54?category=887218
[swift] 15. 객체지향 vs 함수형
1. 정의 1) 객체지향언어 : - 데이터를 객체로 취급하고 처리 요청을 받은 객체가 자기 안에 있는 기능을 가지고 처리 - 추상화, 캡슐화, 상속, 다형성 - 데이터를 기록하는 것을 강조 2) 함수형언어 : - 최소한의..
ios-development.tistory.com
5. ARC(Auto Referencing Counter)
참조 카운트를 통한 메모리 관리
* struct 정의형 인스턴스는 call - by - value (단일 참조)이지만 class 정의형 인스턴스는 call - by - reference (다중 참조)이므로 메모리 해제 시 ARC와 같은 방법이 필요
6. 파일 통합
헤더 파일과 소스 파일이 모두 .swift확장자를 갖는 파일 하나로 통합
7. 범용 타입
Any는 스위프트에서 제공하는 모든 타입의 값을 저장할 수 있는 타입, AnyObject는 클래스에 한해 범용으로 사용 가능한 타입
8. nil
값이 존재하지 않음을 의미(optional 타입의 기본값)
9. 시작점(entry point) : @UIApplicationMain 어노테이션을 사용하여 시작점 결정 (main함수가 존재하지 않음)
|
1
2
3
|
import UIKit
@UIApplication
class myDelegate : UIResponder, UIApplicationDelegate
|
10. 예외 처리
try~catch, optional타입
https://ios-development.tistory.com/16
[swift] 12. 예외 처리 (throws, throw, do - try - catch)
1. 예외 처리 필요한 이유 - optional타입은 오류가 발생했을 때 오류에 대한 정보를 외부로 전달할 방법이 없음 2. 구현 방법 - 함수가 반환할 오류는 일관된 주제와 연관된 경우(문자열이 있을 때,
ios-development.tistory.com