티스토리 뷰

반응형

* Swift 조건문


어느 언어에서나 다름없이 사용하는 조건문은 if 와 switch 구문이다.


if 구문 같은 경우에는 사용방법도 크게 다르지 않다.


if A > B{ }   , if ( A > B ){ }

var test : Bool = true;

if( test == false) {} 


이 포스트에서 다룰건, 바로 switch 구문이다.


switch 구문 또한 크게 다를건 없지만, 3가지 특이점이 있다.





Switch 구문 예제


가장 먼저 눈에 띄는게 바로 default : 를 안쓰면 안된다는것.


Playground execution failed: MyPlayground.playground:12:1: error: switch must be exhaustive, consider adding a default clause


스위프트는 모든면에 있어서 안정성을 고려했다는걸 느낄수 있다.

기본에 충실해야 한다는것이다. ( 수많은 예외사항들, 에러가 발생할 사항들을 미리 방지하고자 하는 애플의 깊은 뜻이 담겨있는듯 하다. ) 



두번째로, 여러 조건들을 명시할때 다른 언어에서는

case "A" :

case "B" :

   ~~

break; 


이렇게 사용해왔더라면  스위프트는 콤마(,) 로 구분해서 사용한다.

게다가 break 구문 또한 없다.  ( 정말 편하다 굳굳! )

case "A", "B" : 


마지막으로 case let x where x.hasSuffix("pepper") 과 같이


case 구문에 sql Where 절과 같이 조건을 줄수 있는것.


쓸수 있는조건으로 자동완성에서 Bool 을 찾아봤더니 유용하게 쓸만한 기능은 다음과 같았다.


hasPrefix("string") : "string" 으로 시작하는 단어가 있다면 TRUE

hasSuffix("string") : "string" 으로 끝나는 단어가 있다면 TRUE

containsString("string") : "string" 을 포함하는 단어가 있다면 TRUE



이정도면 뭐...

몇장 공부 안했는데 넘치는 매력에 점점 푹 빠져들고있다



---- 추가



let somePoint = (1, 1)

switch somePoint {

case (0, 0):

    print("(0, 0) is at the origin")

case (_, 0):

    print("(\(somePoint.0), 0) is on the x-axis")

case (0, _):

    print("(0, \(somePoint.1)) is on the y-axis")

case (-2...2, -2...2):

    print("(\(somePoint.0), \(somePoint.1)) is inside the box")

default:

    print("(\(somePoint.0), \(somePoint.1)) is outside of the box")

}

이런 형태로도 범위지정도 가능하다.

앞서 배운 내용들 모두 응용이 가능할것으로 보인다.


다음에서 발췌: Apple Inc. ‘The Swift Programming Language (Swift 2.2).’ iBooks. https://itun.es/kr/jEUH0.l

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함