본문 바로가기

카테고리 없음

swift 2.0 배워보자

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("그 외")
}

이런 식으로 말이죠.



해당 글은 제가 이해한것을 쓴것으로 잘못된점이 있을수 있습니다.
피드백해주시면 감사하겠습니다.