swift 2.0을 배우게 되어 배운 내용을 정리합니다.
특징
main 함수가 없다.
? ! ? ! ? ! ? ! ? (Optional)
데이터 집합체 Tuple
변수를 선언하자.
swift 는 변수를 선언하는 var 과 상수를 선언하는 let으로 나뉘어져 있다. 편의상 변수라 부르겠다.
자료형으론 Boolean, Character, Int, Double, String 이 있다.
모든 자료형은 대문자로 시작한다.
변수선언시 자료형이 앞에 오는게 아닌 var 이 앞으로온다.
예로 기존의 int x = 1 를 swift로 바꾼다면 var x : Int = 1 혹은 var x = 1 이 된다.
뒤에 자료형을 붙이지 않을 경우 자동으로 설정된다.
변수(상수)를 출력하려면 print("\(변수(상수)명)") 같은 식으로 작성한다.
기존에 문자형(char)는 작은 따옴표 '' 로 묶었지만 swift는 큰 따옴표 "" 로 묶는다.
또한 문자열 사이에 변수를 사용할 수 있다.
변수의 값을 표시할땐 \(변수명)으로 이용 가능하다.
var x = 1
var temp : String = "\(x) = 1 이다"
결과 ) 1 = 1 이다
swift는 변수를 선언하면 자료형이 고정된다.
그래서 다른 자료형으로 바꾸기위해 as 라는 예약어를 사용한다.
var i = 1
i ac Character
선언된 변수의 자료형을 비교하려면 is 라는 예약어를 사용한다,
var i = 1
i is Character
변수를 초기화 하지 않고 사용할 땐 optional로 선언한다.
변수 또는 상수에 아무런 값이 할당되지 않은 상황(nil = null)을 처리하기위해 추가됬다.
한마디로 optional 외엔 nil값을 가질 수 없다.
var x : Int? 같이 사용할 수 있다.
자료형 뒤에 ?를 사용한다. 띄어쓰기가 있을시 에러니 주의
optional도 값을 초기화할 수 있다.
var x : Int?
x = 1
사용하는 방법은 3가지가 있는데
1번째 방법은 변수명! 식으로 뒤에 !를 붙여 사용한다,
이를 언래핑(unwrapped)한다고 한다.
2번째 방법으론 if let temp = x { print(\"temp") } 처럼 다른 변수로 값을 받아 사용하는 법이 있다.
if문은 if 문 할때 설명하죠.
3번째 방법은 선언할때 ?대신 !를 사용해서 optional을 unwrapped 상태로 선언하는 것이다.
사용할 때 사용할 때 !를 안붙여도 되는 장점이 있다.
데이터 집합체 Tuple
Tuple은 여러 값을 하나의 객체에 일시적으로 묶어놓는 것이다.
let tuple = (1, 2.5, "1") 처럼 선언할 수 있다.
접근할때는 myTuple.0 myTuple.2 같이 접근한다.
각 요소들에 이름을 붙일수도 있다.
var tuple = (count:2,name:"인간신",age:0)
print("\(tuple.1)")
print("\(tuple.name)")
tuple.1 과 tuple.name은 "인간신"이라는 문자열을 반환한다.
swift의 연산자
논리 연산등은 다른 언어와 같습니다.
다만 범위 지정 연산자라는 독특한 연산자가 있습니다.
...과 ..<
...은 <= <= 이고
..<는 <= < 입니다.
x...y x 와 y 사이
5...9 5부터 9 사이
5..<9 5부터 8이 되는 거죠.
for var ex in 1...5 {
print("\(ex)")
}
이런식으로 for문과 합쳐 사용할수도 있다.
제어문이 다른 언어와 다른점이 많다.
1문장이더라도 블럭으로 묶지 않으면 에러가 생기므로 반드시 묶어주자.
조건부는 () 괄호가 없는것이 기본이지만 붙여도 상관없다.
if (x==1) {} 이나 if x==1 {} 은 같다.
switch 문은 해당 case만 실행하고 나머지는 무시됩니다.
break을 사용하지 않습니다.
범위 지정 연산자를 사용하거나 ,로 구분하여 여러가지 경우를 묶을 수 있고, where 절을 사용하여 조건을 지정할수도 있다.
도중에 멈추지 않고 개속할 경우 fallthrough를 집어넣으면 됩니다.,
var x = 3
switch (x){
case 1:
print("1")
fallthrough
case 3,5 :
print("3 or 5")
case 2...9 where x % 2 == 0 :
print("짝수")
default:
print("그 외")
}
이런 식으로 말이죠.