본문 바로가기

Swift 클로저(Closure) Swift 클로저(Closure) : Swift에서 클로저란 {} 형식의 '코드블럭'이다. 코드 안에서 사용될 수도 있고 매개변수로 전달 될 수도 있다. 클로저 형식 클로저 형식은 위 그림과 같다. 중괄호{} 안에 함수 형식과 유사하게 작성하면 된다. in 문장 안에 코드블럭의 실질적인 내용이 적힌다. 클로저 예시 Int 매개변수를 인자로 받아 단순히 *2 한 값을 반환하는 doubler 함수를 작성하였다. [1,2,3,4,5] 5개의 요소를 가지는 Int형 배열을 선언하고 array.map()의 매개변수로 doubler 함수를 전달하였다. array.map()의 매개변수로 '클로저'로 doubler 함수의 내용을 구현하여 전달하였다. 둘의 결과는 [2, 4, 6, 8, 10]으로 당연하게도 서로 동일하..
Swift 제너릭 (Generic) Swift 제너릭 (Generic) 자료형에 의존하지 않는 알고리즘만 작성된 함수 (C++에서는 Templete 함수라고 함!) Swift 배열을 써봤다면 같은 자료형이 아니더라도 배열에 담기는 것을 알 수 있다. Swift의 Array Library가 제너릭으로 작성되었기 때문이다. 그밖에도 Stack, Queue 등 자료형에 의존하지 않는 알고리즘을 필요로 하는 데에 제너릭이 사용된다. (자료형에 의존한다면 똑같은 기능을 함에도 자료형별로 다 따로 선언해야함..-_-;;;) ex) 사실 Swift에는 '튜플'을 이용하면 되므로 별도의 swap함수를 만들지 않아도 된다. ( var1 = (p1,p2), var2 = (p2, p1) ) 제너릭 사용 예를 들기 위해 swap함수를 작성함. func swap..
[Swift 기초] switch case 문 [Swift 기초] switch case 문 switch- case문도 C언어와 크게 차이 없다. 다만 C 언어에서는 case마다 종료 시 break 명령어를 적어줬어야 했다.적어주지 않을 경우에는 다음 case에 해당하는 명령어까지 실행하는 fallthrough가 자동으로 적용된다. Swift에서는 fallthrough를 기본으로 지원하지 않으므로 Case마다 break를 적을 필요가 없다.대신 falltrhough 되기를 원한다면 case에 fallthrough 명령어를 써줘야 한다. range로도 case를 줄 수 있다. 예아!쉼표를 이용해서 하나의 케이스에 여러 값 두기 Swift에서는 쉼표를 이용하여 하나의 케이스에 여러 값을 둘 수 있다. (...를 이용한 연속적인 값이 아니라도 되는군!) 여..
[Swift 기초] while, repeat while 문 [Swift 기초] while, repeat while 문 C 언어와 워낙 유사해서 따로 다룰 게 딱히 없다. while 반복조건 {조건 성립 시 수행할 명령어들} repeat{수행할 명령어들} while 반복조건 여기서 while과 repeat while의 결과는 동일하다. while과 repeat while의 차이는 무엇일까?while : 반복문 시작 시, 조건이 성립하지 않는다면 애초에 실행도 안함repeat while : 반복문 시작 시 일단 실행시키고 봄. 따라서 조건에 안맞더라도 최소한 1번은 실행됨.