전체 글
스위프트(Swift) - 집단자료형(Collection Types) Ⅳ. 딕셔너리(Dictionary)
딕셔너리(Dictionary)는 사전에서 단어와 의미가 연결되어 있는 것과 같이 고유 키(Key)와 그에 대응하는 값(Value)을 연결해 데이터를 저장하는 자료형이다. 정의하는 형식은 다음과 같다. [키 : 데이터, 키 : 데이터, ...] 딕셔너리의 경우 사용할 때 주의할 점이 몇 가지 있다. 하나의 키는 하나의 데이터에만 연결되어야 한다. 하나의 딕셔너리에서 키는 중복될 수 없다. 중복해서 선언하면 아이템이 추가되는 것이 아니라 수정이 이루어지기 때문에 기존에 키에 연결된 값은 삭제된다.(덮어쓰기가 된다는 뜻) 저장할 수 있는 데이터의 타입에는 제한이 따로 없지만, 하나의 딕셔너리에 저장되는 자료형은 모두 같아야한다. 딕셔너리의 아이템에는 순서가 따로 없다. 하지만 키에는 내부적으로 순서가 정해지므..
스위프트(Swift) - 집단 자료형(Collection Types) Ⅲ. 튜플(Tuple)
튜플(Tuple)은 스위프트에서 제공하는 조금 특별한 집단 자료형으로서 한 가지 타입의 아이템만 저장가능한 배열이나 딕셔너리와 달리 여러 타입의 아이템을 저장할 수있다. 하지만 일단 선언되고 나면 상수적 성격을 지녀 후에 값을 추가하거나 삭제하는(동적인) 활동이 불가능하다. 즉, 최초에 선언된 상태의 아이템만 사용이 가능하고 수정, 삭제, 추가 등의 변경은 불가하다는 것이다. 튜플은 대괄호를 사용하는 배열과 집합과 다르게 소괄호()를 사용해 아이템을 정의한다. (, , ... ) 튜플의 인덱스는 속성으로 다음과 같이 제공된다. 다음과 같이 점(dot)으로 인덱스를 연결해 사용할 수 있다. let tupleValue = ("a", "b", 1, 2.5, true) tupleValue.0 // "a" tup..
스위프트(Swift) - 집단자료형(Collection Types) Ⅱ. 집합(Set)
집합(Set)은 같은 타입의 서로 다른 값을 중복없이 저장하고자 할 때 사용하는 집단 자료형이다. 순서가 중요하지 않은 데이터들이거나 중복 없이 한 번만 저장되어야 하는 데이터들을 다룰 때 배열 대신 사용할 수 있는 자료형이다. 집합의 정의 집합을 정의할 때는 배열과 마찬가지로 초기값을 사용해 바로 정의하거나 빈 집합을 선언하고 초기화 과정을 거쳐 정의하는 즉 정적인 방법, 동적인 방법 두 가지가 존재한다. // 초기값 사용해 바로정의(정적) var language : Set = ["Korean", "English", "Chinese"] // 초기값 사용하지 않은 빈 집합 정의(동적) var language = Set() // 아이템 추가 language.insert("Korean") language.i..
스위프트(Swift) - 집단 자료형(Collection Types) Ⅰ. 배열(Array)
스위프트는 서로 관련이 있는 데이터끼리 모아 관리할 수 있도록 집단 자료형(Collection Types)를 제공한다. 그 중 먼저 배열(Array)에 대해서 알아보자. 배열(Array)는 일련의 순서를 가지는 리스트 형식의 값을 저장하는데 사용되는 자료형으로, 대부분의 언어에서 제공하는 자료형이다. 배열에 입력되는 아이템들은 각각의 순서가 있는데 이를 인덱스(Index)라고 한다. 배열에서 인덱스는 0부터 순서대로 할당되고 중간에 값을 생략하거나 건너뛰는 것은 불가능하다. 인덱스에 연결된 아이템이 삭제되더라도 뒤 아이템들이 한 칸씩 앞으로 이동하면서 빈 인덱스의 자리를 채우게된다. 물론 이런식으로 마지막 인덱스의 아이템은 앞으로 이동할 아이템들이 없기 때문에 바로 삭제된다. 스위프트에서 사용하는 배열은..
스위프트(Swift) - 제어 전달문(Control Transfer Statements)
제어 전달문(Control Transfer Statements)은 코드의 한 부분에서 다른 부분으로 제어 흐름을 전달하여 코드가 실행되는 순서를 변경해주는 구문이다. 보통 반복문이나 조건문, 함수 등에서 사용되는 이 구문은 C언어나 다른 언어에서도 많이 사용된다. 스위프트에서 사용되는 전달문은 다음 네 가지가 존재한다. break continue fallthrough return break break 구문은 switch 구문에서의 실행 흐름이나 반복 실행 중인 루프를 조건식의 결과에 상관없이 즉각 종료하는데 사용된다. for row in 0...5 { if row > 2 { break } print("\(row) was executed!") } /* 실행결과 0 was executed! 1 was exe..
스위프트(Swift) - 조건문 Ⅳ. switch 구문
switch 구문은 if와 guard 구문처럼 분기문의 일종이지만, 처리방식은 사뭇 다르다. switch 구문의 경우 입력받은 값을 조건식 여부가 아니라 패턴으로 비교하고 그 결과를 바탕으로 실행 블록을 결정하는 조건문이다. 나열된 패턴들을 순서대로 비교하다가 일치하는 첫 번째 패턴의 코드 블록을 실행한다. 굳이 switch 구문을 사용하지 않아도 if ~ else if 구문만으로도 작성이 가능하나 다양한 가능성이 있는 여러 개의 조건에는 switch 구문을 사용하는 것이 좀 더 효율적이다. switch 구문의 형태는 다음과 같다. switch { case : case , : default : } 스위프트의 case 구문은 C언어, 자바 등의 case 구문과 실행방식에 있어 차이점이 존재한다. C나 자바..