튜플(Tuples) 🗜 튜플이란? 여러가지 타입들을 묶어 하나의 타입으로 선언해주는 것입니다. 2개 뿐만 아니라 3개 이상의 타입의 값들도 튜플로 묶일 수 있으며 이렇게 묶인 튜플은 타입이 사용될 수 있는 곳이라면 어디서도 사용 가능합니다. 💻 튜플의 사용 방법 튜플의 사용 예시는 아래와 같습니다. // 1. 튜플의 요소 수만큼 변수를 할당해 사용 let x: (String, Int, Double) = ("hello", 5, 0.5) let (word, number, value) = x // tuple에 접근할 때 요소들이 이름을 갖습니다. // 요소의 개수가 맞지 않는다면 컴파일 에러가 발생합니다. print(word) print(number) print(value) // 2. 튜플을 정의할 때 ele..
🎯 Protocol(프로토콜) vs Inheritance(상속) 📎 Protocol 및 Inheritance 되짚기 Protocol을 학습하며 지속적으로 학습한 내용은 'blueprint(청사진)이다', '공통 기능을 가진다' 등 입니다. 이러한 학습을 하며 자연스럽게 동시에 떠오르는 생각은 위의 특징이 클래스의 상속(inheritance)와 유사하다는 점이며 이 두가지 개념을 구분할 필요성을 느꼈습니다. 우선 구분을 하기 전, 각각의 특징을 상기할 필요가 있습니다.위의 정의는 기본적인 것으로 정확한 차이를 이해하기 어렵습니다. 그래서 예시 상황을 통해 두 개념을 조금 더 알아볼 필요가 있습니다. 상속 : 상속받을 클래스의 모든 기능을 물려받는다.(부모의 모든 기능을 자식 클래스가 물려받는다) 프로토콜:..
프로퍼티(Property) Property의 정의 클래스나 구조체, 열거체의 객체 인스턴스가 그 내부에 가지고 있는 객체의 상태에 관한 정보를 말합니다(Properties associate values with a particular class, structure, or enumeration). 저장 프로퍼티는 상수나 변수를 인스턴스의 일부로서 저장하지만, 연산 프로퍼티는 저장한다기보다 값을 연산하는 프로퍼티입니다(Stored properties store constant and variable values as part of an instance, whereas computed properties calculate (rather than store) a value). 저장 프로퍼티는 클래스와 구조체에만..
열거형(enum) 제한된 선택지를 주고 싶을 때 정해진 값 외에는 입력받고 싶지 않을 때 예상된 입력 값이 한정되어 있을 때 각각의 케이스가 값으로 취급된다. C언어의 열거형에서는 정수값이 자동으로 할당되지만 Swift에서는 작동 방식이 다르다. Swift에서는 각 항목이 그 자체로 고유값이 될 수 있다. 처음 선언시에는 열거형을 명시해줄 필요가 있다. enum Weekday { case mon case tue case wed case thu, fri, sat, sun } var day: Weekday = Weekday.mon enum이 정수값을 가지면 rawValue를 생성해줄 수 있고 이 rawValue는 첫번째 case가 값이 정해지면 C언어처럼 1씩 증가한다. 1씩 증가하다가 중간에 중복되지 않는..
데이터 타입 고급 1. 데이터 타입 안심 데이터 타입 안심이란 데이터의 타입에서 오는 실수들을 줄일 수 있다는 말로서 Swift가 컴파일 시 타입을 확인하며 문제가 있을 경우 컴파일 오류로 알려준다. 타입 확인: 컴파일시 타입을 확인하는 과정을 타입 확인이라고 한다. 타입 추론: 특정 타입을 명시하지 않아도 컴파일러가 할당된 값을 기준으로 변수나 상수의 타입을 결정한다. 2. 타입 별칭(Type Alias) 존재하는 데이터 타입에 임의의 다른 이름(별칭)을 부여할 수 있으며 이를 타입 별칭이라고 한다. 기본으로 제공하는 데이터 타입(Int...), 사용자가 생성한 타입 모두 별칭 생성이 가능하다. typealias Number = Int typealias Count = Int let myMoney: Nu..
if let vs guard let (if let, guard let 차이 비교) 1. if-let optional 타입의 값이 nil인지 판단하고 nil이 아닐 경우 if 블럭 안에서 optional이 unwrapped 된 상태로 사용 가능하다. if-let을 사용할 때는 추출하려는 변수의 이름과 동일하게 사용해도 상관 없다. 2. guard-let guard 뒤에 조건이 true일 때 코드가 계속 실행되며 반드시 뒤에 else 구문이 필요하다. guard 뒤 조건이 false라면 else 블럭이 실행되며, 자신보다 상위 코드 블록을 종료하는 코드가 반드시 들어가야한다. (return, break, continue, throw) 옵셔널 바인딩으로 사용할 경우 guard 구문 실행 코드 아래부터 함수 블..
Swift Basic 조건문 If - else if - else 구문 if 만 단독으로 사용 가능 if 조건 뒤에는 Bool 타입 값만 존재해야함 조건 부분의 소괄호는 선택사항 switch 구문 정수타입의 값만 비교하는 것이 아니라 대부분의 스위프트 기본 타입을 지원 default 구문은 반드시 작성해야한다. 명시적으로 break를 하지 않아도 자동으로 case마다 break가 된다. fallthrough 키워드로 break를 무시할 수 있다. 쉼표(,)를 사용해서 하나의 case에 여러 패턴을 명시할 수 있다. let test: String = "test3" switch test { case "test1": print(1) case "test2": print(2) case "test", "test3":..
Swift Basic 명명법 / 콘솔로그 / 문자열 보간법 1. 명명법 Upper Camel Case: type(class, struct, enum, extension) 등 Lower Camel Case: 그 외(function method, variable, constant) 2. 콘솔로그 남기기 print 함수: 단순 문자열 출력 dump 함수: 자세한 설명까지 출력 3. 문자열 보간법(String Interpolation) - \(변수 또는 상수)를 문자열에 삽입하여 바로 출력 가능 상수와 변수 1. 상수와 변수 선언 let: 차후 변하지 않는 값(상수)를 선언할 때 사용 var: 차후 변하는 값(변수)를 선언할 때 사용 기본 데이터 타입 1. Bool true / false값을 가지는 값 2...
- Total
- Today
- Yesterday
- 리모컨#완전탐색#BOJ#Python
- 배열합치기#분할정복#BOJ#Python
- N으로 표현#DP#Programmers#Python
- 쿼드트리#BOJ#분할정복#Python
- 랜선자르기#이분탐색#BOJ#Python
- NumberofDiscIntersections#Codility#Sort#Python
- Brackets#Stacks and Queues#Codility#Python
- 토마토#백준알고리즘#Python
- 터틀비치#리콘#xbox#controller
- filter#isalnum#lower
- 미로 탐색#백준알고리즘#Python
- 병든 나이트#BOJ#탐욕법#Python
- Triangle#Sorting#Codility#Python
- 섬의개수#백준알고리즘#Python
- API#lazy#
- django#slicing
- 파이썬알고리즘인터뷰#4장
- 나무자르기#BOJ#이분탐색#Python
- 공유기 설치#BOJ#이분탐색#Python
- Distinct#Codility#Python
- 암호코드#dp#BOJ#Python
- 백준 알고리즘#BackTracking
- 종이자르기#분할정복#BOJ#Python
- 반복수열#백준알고리즘#Python
- PassingCars#Codility#Python
- 날짜 계산#BOJ#완전탐색#Python
- django
- 텀 프로젝트#백준알고리즘#Python
- Swift#Tuples#Range
- 순열사이클#BOJ#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |