분류 전체보기
[Swift] 함수(Function) - 정의와 호출
💡함수 선언의 기본 형태 스위프트에서 함수를 정의하는 키워드는 func입니다. 이를 사용한 함수의 기본 형태는 다음과 같습니다. func 함수 이름(매개변수1이름: 타입, 매개변수2이름: 타입 ...) -> 반환 타입 { 실행 구문 return 반환 값 } 기본 형태의 함수 정의와 호출 func greet(name: String) -> String { let greeting = "Hello, " + name + "!" return greeting } let helloJenny: Sting = greet(name: "Jenny") print(helloJenny) // Hello, Jenny! 이를 더 간단하게 다음과 같이 구현할 수 있습니다. func greeting(name: String) -> Stri..
[Swift] 열거형(Enumeration)
💡열거형(Enumerations) 열겨형은 연관된 항목들을 묶어서 표현할 수 있는 타입입니다. 프로그래머가 정의해준 항목 값 외에는 추가/수정이 불가하기 때문에 딱 정해진 값만 열거형 값에 속할 수 있어요 스위프트의 열거형은 enum이라는 키워드로 선언할 수 있습니다. 열거형 선언 enum WeekDays { case mon case tue case wed case thu case fri case sat case sun } // 위와 같은 표현 enum WeekDays { case mon, tue, wed, thu, fri, sat, sun } 각 항목은 그 자체가 고유한 값입니다. 열거형 변수 생성 및 값 변경 var today: WeekDays = WeekDays.mon // 위 코드와 같은 표현 v..
[Swift] 컬렉션형 - 세트(Set)
💡세트(Set) 같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 형태의 컬렉션 타입입니다. ❗️세트 내에는 중복된 값이 존재하지 않으므로 모두 유일한 값입니다. ❗️세트의 요소로는 해시 가능한 값이 들어와야 합니다. 해싱(hashing)이란? 각각의 객체에 식별할 수 있는 숫자 코드를 부여하여 객체를 테이블에 저장하는 것을 말합니다. 빈 세트 생성하기 var emptySet: Set = Set() var emptySet: Set = [] // 위와 동일한 표현 배열과 딕셔너리와 달리 줄여서 표현할 수 있는 축약형이 없습니다. 세트 생성하고 사용하기 var fruits: Set = ["apple", "melon", "peach", "apple"] // 요소의 개수 확인 print(fruits.co..
[Swift] 컬렉션형 - 딕셔너리(Dictionary)
💡딕셔너리 요소들이 순서 없이 키와 값의 쌍으로 구성되는 컬렉션 타입입니다. ❗️하나의 딕셔너리 안의 키는 같은 이름을 중복해서 사용할 수 없습니다. 빈 딕셔너리 생성하기 // Key가 String 타입이고 Value가 Any인 빈 Dictionary 생성 var emptyDictionary: Dictionary = [String: Any]() // 위와 같은 표현 var emptyDictionary: Dictionary = Dictionary() var emptyDictionary: Dictionary = [:] var emptyDictionary: [String: Any] = Dictionary() var emptyDictionary: [String: Any] = [String: Any]() var ..
[Swift] 컬렉션형 - 배열(Array)
💡배열(Array) 같은 타입의 데이터를 일렬로 나열한 후 순서대로 저장하는 형태의 컬렉션 타입입니다. 배열을 변수(var)로 선언해주면 변경 가능한 배열이 되고 상수(let)로 선언해주면 변경 불가능한 배열이 됩니다. 빈 배열 생성하기 var emptyArray: Array = Array() //위와 동일한 표현 var emptyArray: Array = Array() var emptyArray: Array = [Any]() var emptyArray: Array = [] var emptyArray: [Any] = Array() var emptyArray: [Any] = [Any]() var emptyArray: [Any] = [] var emptyArray = [Any]() 배열 생성하기 var fr..
[Swift] 튜플(Tuple)
💡튜플(Tuple) 튜플은 지정된 데이터의 묶음입니다. 튜플 생성 및 사용 // String, Int, Double 타입을 갖는 튜플 생성 var person: (String, Int, Double) = ("eunnseo", 20, 170.5) // 인덱스를 통해 값 빼오기 print("이름: \(person.0), 나이: \(person.1), 신장: \(person.2)") //이름: eunnseo, 나이: 20, 신장: 170.5 // 인덱스를 통해 값 할당하기 person.1 = 25 인덱스만으로 각 요소의 데이터가 무엇을 나타내는지 쉽게 파악하기 어렵기 때문에 튜플 요소에 이름을 붙여줄 수 있습니다. 튜플 요소 이름 지정 // String, Int, Double 타입을 갖는 튜플 생성 var p..
[Swift] Any, AnyObject와 nil
💡Any 스위프트의 모든 데이터 타입을 사용할 수 있다는 뜻입니다. 변수 또는 상수의 데이터 타입이 Any로 지정되어 있다면 그 변수 또는 상수에는 어떤 종류의 데이터 타입이든지 상관없이 할당할 수 있습니다. var someAny: Any = "hello" someAny = 30 someAny = 2.5 let someDouble: Double = someAny // 오류발생 // Any는 Double 타입이 아니므로 할당할 수 없음 💡AnyObject 모든 클래스 타입을 지칭하는 프로토콜입니다. 클래스의 인스턴스에만 할당할 수 있습니다. class Person {} var student: AnyObject = Person() student = "lucy" // 오류발생 // 클래스의 인스턴스가 아니므로..
[Swift] 데이터 타입
💡데이터 타입 스위프트의 기본 데이터 타입은 모두 구조체를 기반으로 구현되어 있습니다. Int와 UInt Int +, - 부호를 포함한 정수 타입 현재는 기본적으로 64비트 정수형 UInt 0을 포함한 양의 정수 타입 현재는 기본적으로 64비트 양의 정수형 var integer: Int = -100 var unsignedInteger: UInt = 20 unsignedInteger = integer // 컴파일 오류발생, Int와 UInt는 다른 타입임. 각 진수에 따라 정수를 표현하는 방법 10진수: 우리가 평소에 쓰던 숫자와 동일 2진수: 접두어 0b를 사용하여 표현 8진수: 접두어 0o를 사용하여 표현 16진수: 접두어 0x를 사용하여 표현 Float와 Double Float 32비트의 부동소수형인..
[Swift] 변수와 상수
💡변수 생성 후 데이터 값을 변경할 수 있습니다. var [변수명]: [데이터 타입] = [값] 데이터 타입은 생략 가능❗️ var name: String = "eunseo" var age: Int = 20 var height = 165.7 // Double 타입으로 추론됨 age = 25 // 변수는 값을 변경해줄 수 있음 // 단, 값을 변경할 때는 기존과 동일한 타입의 값을 할당해야 함 💡상수 한번 값을 설정하면 변경할 수 없습니다. let [상수명]: [데이터 타입] = [값] 데이터 타입은 생략 가능❗️ let name: String = "eunseo" let age = 20 // Int 타입으로 추론됨 // 상수로 선언된 값은 변경할 수 없음 상수 선언 후에 나중에 값 할당하기 나중에 할당하려..
[Swift] 문자열 보간법과 주석 작성법
💡문자열 보간법 (String Interpolation) 변수 또는 상수 등의 값을 문자열 내에 나타내고 싶을 때 사용합니다. 문자열 내에 \(변수나 상수)의 형태로 표기하면 이를 문자열로 치환해서 넣습니다. let name: String = "eunseo" print("My name is \(name)") // My name is eunseo 문자열 보간법을 이용하여 원하는 문자열로 치환하려면 변수나 상수 타입을 CustomStringConvertible 프로토콜을 준수하는 description 프로퍼티로 구현해야 합니다. struct Point { let x: Int, y: Int } let p = Point(x: 3, y:15) print(p) // Point(x: 3, y: 15) extensio..