swift 15

Swift 열거형 (Enum)

Swift 열거형 (Enum) : 변수가 가질 수 있는 값들을 나열해 놓은 타입. : 값의 종류가 일정 범위로 정해져 있는 경우 적합. 열거형 형식 enum 열거형이름{ case 가능값1 case 가능값2 case 가능값3, 가능값4, 가능값5 } 예시 변수가 열거형을 받는 방식은 선언 시 변수명 옆에 : 열거형이름 을 명시하면 된다. var 서울에서거제 : 방향 열거형을 받은 변수는 열거형에 나열된 값만 가질 수 있다. 원시값(raw value) C언어에서는 default로 열거형 자료에 정수형으로 숫자를 부여한다. Swift 에서는 기본적으로 사용하지 않는다. 사용하고자 할 때에는 열거형명 : Int 이렇게 따로 명시해야 한다. : Int를 적어 정수형 rawValue를 사용함을 명시했다. 첫번째 c..

Swift 기초 2019.03.30

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 기초 2019.03.30

Swift 중첩함수

Swift 중첩함수 Swift 는 함수 내부에 또 다른 함수 생성 가능 (중첩함수) 내부의 중첩된 함수는 바깥쪽 함수에 선언된 변수를 사용할 수 있다. (물론 외부함수의 인자에도 접근 가능) 중첩함수의 호출은 함수 내부에서만 가능하다. ==> 내부적으로 은닉 가능. 내부함수는 외부함수가 실행되는 순간 생성되고, 종료되는 순간 소멸된다. 외부함수를 호출했을 때 내부함수를 반환하여 외부에서 사용하는 것도 가능하다. (값에 따라 다른 함수를 반환하는 것도 구현 가능) 함수 안에 함수를 선언한다는 것일 뿐, 함수 선언 방식은 동일하므로 일반적인 함수 작성 코드는 따로 작성하진 않겠다. 다만 내부 함수를 반환할 때 외부함수의 반환타입 명시 예시를 들자면 다음과 같다. 외부함수의 선언문:func IncDec(wan..

Swift 기초 2019.03.28

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 기초 2019.03.27

Swift 함수 기초

Swift 함수 기초 함수는 어떤 작업을 수행하는 코드의 그룹이다. 기능별로 나누어 그것을 각각의 함수로 작성한다면 가독성 증대 및 유지관리가 쉽다. 기본적인 함수 형태 Swift에서 함수의 정의는 다음과 같다. func 함수이름(인자레이블: 자료형, 인자레이블: 자료형, ... ) -> (반환자료형) { 함수 내용 return 반환값 } 기본적인 함수를 선언해 봤다. 인자는 num이라는 레이블에 Int 값을 받아서,10증가 후 결과 Int 값을 반환하는 함수이다. 함수 중복 정의 : 매개변수가 다르다면 이름이 같은 함수를 중복정의 할 수 있다. 똑같은 이름의 greet 함수가 2개이다. String 타입 매개변수 하나만 받는 경우 String 타입 매개변수 2개를 받는 경우 이처럼 매개변수가 다르다면 ..

Swift 기초 2019.03.27

[Swift 기초] while, repeat while 문

[Swift 기초] while, repeat while 문 C 언어와 워낙 유사해서 따로 다룰 게 딱히 없다. while 반복조건 {조건 성립 시 수행할 명령어들} repeat{수행할 명령어들} while 반복조건 여기서 while과 repeat while의 결과는 동일하다. while과 repeat while의 차이는 무엇일까?while : 반복문 시작 시, 조건이 성립하지 않는다면 애초에 실행도 안함repeat while : 반복문 시작 시 일단 실행시키고 봄. 따라서 조건에 안맞더라도 최소한 1번은 실행됨.

Swift 기초 2019.03.16

딕셔너리 (Dictinary)

Swift 딕셔너리 (Dictionary)딕셔너리는 키(key)와 값(value) 세트로 구성됨.키를 이용하여 값을 얻을 수 있다. 쉽게 생각하면, 배열 요소 참조를 저자[0] 저자[1] 이렇게 하던걸 저자[책이름] = 저자이름 처럼 키워드로 접근할 수 있도록 함.ex) print(저자["개미"]) ==> "베르나르 베르베르" [ 딕셔너리 생성 ][키:값, 키:값, 키:값] 이렇게 들어감.타입은 역시 명시적으로 주어도 되고 주지 않을 경우 추정을 통해 정함. [ 딕셔너리 개수 반환 ] 요소 개수를 반환함.현재 Dic3에는 "배열도":[1,2,3,4,5]와 "됩니다":[5,6,7,8]로 2개 요소가 담겨있으므로 2가 반환됨. [ 딕셔너리 요소 추가, 수정, 삭제 ] Dic[없는 키] = 값 을 하면 새로운..

Swift 기초 2019.01.18

배열

Swift 배열 [ 배열 ]: 같은 타입을 가진 여러 개의 값을 순서대로 저장하는 자료구조 [ 배열 선언 ]----------------------------3~4 : 배열 선언 방법 (자료형 추정, 자료형 명시)7~8 : 비어있는 배열 선언10~11 : 비어있는 배열에 값 넣기 15 : 같은 타입이 아닌 다른 타입들을 배열로 선언하려면 위와 같이 : Array로 배열 선언.Question : 이러면 튜플과 뭐가 다르지?Answer : 튜플은 배열처럼 append, remove 등을 통한 element 추가 삭제가 불가능하다. [ 배열 요소 접근 방법 ]-------------------3 : 같은 값 여러번 넣는 배열 초기화 방법5~7 : 배열 요소(element) 접근 방법9 : 한번에 여러 배열 값..

Swift 기초 2019.01.18