Swift/문법

    스위프트(Swift) - 함수(Function) Ⅱ. 내부 매개변수, 외부 매개변수

    스위프에선 함수를 정의할 때 매개변수를 용도에 따라 두 가지로 분리할 수 있다. 바로 내부 매개변수와 외부 매개변수이다. 외부 매개변수는 함수를 호출할 때 인자값에 대한 인자 레이블(Argument Label) 역할을 하고 동시에 함수의 식별자 일부로 사용된다. 반면, 내부 매개변수는 입력된 인자값을 함수 내부에서 참조하기 위해 사용하는 변수이다. 함수의 범위 내에서는 내부 매개변수를 일반 변수처럼 사용해 인자값을 얼마든지 참조할 수 있다.별도로 외부 매개변수를 나누지 않을 경우 일반 매개변수가 인자 레이블 역할까지 겸하지만, 외부 매개변수를 명시적으로 정의하면 외부매개변수가 인자 레이블이 된다. 형식은 다음과 같다. func 함수이름( : , : ...) { // 함수 내용 } 간단하다. 그냥 내부 매..

    스위프트(Swift) - 함수(Function) Ⅰ. 함수의 기본 개념

    함수(Fuction)은 대부분의 프로그래밍 언어에서 지원하는 개념으로, 프로그램 실행 과정 중 독립적으로 처리되는 부분을 따로 분리하여 구조화한 객체를 뜻한다. 함수는 일반 함수와 사용자 정의 함수로 나눌 수 있다. 일반 함수는 프로그래밍 언어나 프레임워크에서 제공하는 함수로 기본적인 데이터 처리나 연산 등을 수행하기 위해 사용된다. 대표적인 예로 print함수 가 있다. 하지만 프로그래밍을 하는 과정에서 일반 함수만으로 모든 것을 처리하는 것은 쉽지 않다. 이럴 때 필요한 기능들을 사용자가 직접 함수로 만들어 사용하는 것을 사용자 정의 함수라고 한다. 이제 그럼 사용자 정의 함수에 대해 알아보자. 사용자 정의 함수 스위프트에서 함수를 정의하는 형식은 다음과 같다. func 함수이름(매개변수1: 타입, ..

    스위프트(Swift) - 옵셔널(Optional)

    스위프트(Swift) - 옵셔널(Optional)

    옵셔널(Optional)은 스위프트에서 언어차원에서의 프로그램 안전성을 높이기 위해 사용하는 개념으로 'nil을 사용할 수 있는 타입과 사용할 수 없는 타입을구분하고, 사용할 수 있는 타입을 옵셔널 타입(Optional Type)이라고 부른다'고 할 수 있다. 여기서 말하는 nil이란, 값이 없음을 의미하는 특수한 값이다. 정수형의 0이나, 문자열의 ""(공백)과 다른, 순수하게 아무 값도 없다는 것을 의미한다. 이러한 특수성 때문에 nil은 종종 실제 값으로는 처리할 수 없는, 무언가 문제가 발생했을 때를 의미하기 위해 사용된다. 보통 문제가 발생했을 때는 오류를 발생시키는데 이는 그닥 좋은 흐름은 아니다. 왜냐하면 사소한 것 하나 때문에 실행을 중단시키는 것 뿐만 아니라 안정성에도 좋지 않기 때문이다..

    스위프트(Swift) - 집단자료형(Collection Types) Ⅳ. 딕셔너리(Dictionary)

    스위프트(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..