Swift11 Swift) 튜플 기초 간단 정리 튜플이란? → 2개이상의 연관된 데이터(값)를 저장하는 Compound(복합/혼합) 타입 💡 원하는 연관된 데이터의 조합으로 어떤 형태든 만들 수 있는 타입이나, 변수를 선언과 동시 해당 멤버 (데이터의 종류 및 갯수)는 결정되므로 추가/수정(삭제)가 불가능하다. 튜플의 선언 let twoNums: (Int, Int) = (1, 2) let threeNums = (1, 2, 3) var myTuple = ("hoonsbrand", 25, "서울") 튜플의 각각의 데이터의 접근 myTuple.0 // "hoonsbrand" myTuple.1 // 25 myTuple.2 // "서울" 인덱스로 접근이 가능하다! 이름이 매겨진 튜플(Named Tuple) → 데이터의 각 요소에 이름을 붙일 수 있다. 💡 Na.. Swift 2022. 8. 29. Swift) ch18.상속 상속 (Inheritance) 클래스는 메서드나 프로퍼티 등을 다른 클래스로부터 상속받을 수 있다. 어떤 클래스로부터 상속을 받으면 그 클래스를 자식클래스, 상속을 준(물려준) 클래스는 부모클래스라고 한다. 상속을 받게 되면 부모클래스에 있는 메서드를 호출하거나 프로퍼티에 접근할 수 있으며 서브 스크립트도 사용할 수 있다. 또한 부모클래스로부터 물려받은 메서드, 프로퍼티, 서브 스크립트 등을 새로운 내용으로 재정의(overload)할 수도 있다. 클래스 상속 클래스의 이름 뒤에 콜론을 붙이고 상속받고자 하는 클래스 이름을 써주면 해당 부모클래스의 기능을 앞에 쓴 클래스가 상속받는다. class 클래스 이름: 부모클래스 이름 { 메서드와 프로퍼티... } Person 클래스를 상속받은 Developer 클.. Swift 2022. 7. 16. Swift) ch11.인스턴스 생성 및 소멸 구조체와 클래스를 생성할 때는 지금까지 기본 이니셜라이저를 사용해 인스턴스를 생성했다. 초기화는 클래스나 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비 과정이다. 초기화가 완료된 인스턴스는 사용 후 소멸 시점이 오면 소멸한다. 이번에는 인스턴스를 생성하는 방법과 클래스의 인스턴스가 소멸할 때 어떤 프로세스가 진행되는지 알아보자! 인스턴스 생성 초기화 과정 새로운 인스턴스를 사용할 준비를 하기 위하여 저장 프로퍼티의 초깃값을 설정하는 등의 일 이니셜라이저를 정의하면 초기화 과정을 직접 구현할 수 있고 그렇게 구현된 이니셜라이저는 새로운 인스턴스를 생성할 수 있는 특별한 메서드가 됨 Swift의 이니셜라이저는 반환 값이 없고 그저 인스턴스의 첫 사용을 위해 초기화하는 것뿐임 💡 init 메서드는 클래.. Swift 2022. 7. 8. Swift) ch10.프로퍼티와 메서드 프로퍼티 - 클래스, 구조체 또는 열거형 등에 관련된 값 메서드 - 특정 타입에 관련된 함수 프로퍼티 프로퍼티는 크게 저장 프로퍼티, 연산 프로퍼티 그리고 타입 프로퍼티로 나눌 수 있다. 저장 프로퍼티 (Stored Properties) 클래스 또는 구조체의 인스턴스와 연관된 값을 저장하는 가장 단순한 개념의 프로퍼티 var 키워드를 사용하면 변수 저장 프로퍼티, let 키워드를 사용하면 상수 저장 프로퍼티가 된다. // 신체 정보 struct BodyInfo { var height: Double // 저장 프로퍼티 var weight: Double // 저장 프로퍼티 } // 구조체에는 기본적으로 저장 프로퍼티를 매개변수로 갖는 이니셜라이저가 있다! let hoonsBodyInfo: BodyInfo =.. Swift 2022. 7. 4. Swift) ch8.옵셔널 Swift는 안전성(safe)을 굉장히 강조하는 언어이다. Swift 공식 문서 의 첫 파트인 소개 부분에서도 안전에 대한 이야기가 옵셔널이라는 것과 함께 나온다. 도대체 옵셔널이 뭘까? 그리고 왜 Swift는 옵셔널이라는 문법을 사용하는 것일까? 옵셔널(Optional)이란? 옵셔널은 단어 뜻 그대로 '선택적인', 즉 값이 '있을 수도, 없을 수도 있음'을 나타내는 표현이다. A라는 자동차가 있다고 해보자. 자동차 A에 대해 선루프 옵션을 선택한 차는 선루프가 있고, 선택하지 않은 차는 선루프가 없다. 도로에 다니는 자동차 A 선루프가 있는 자동차 A 선루프가 없는 자동차 A 어떤 자동차 모델이 선루프 옵션이 있다면 도로에 다니는 이 자동차들은 선루프가 '있을 수도, 없을 수도' 있다는 것이다. 다시 .. Swift 2022. 6. 29. Swift) ch7.함수 "하나의 프로그램은 하나의 큰 함수다"라는 말이 있듯이 함수는 프로그램을 이루는 주된 요소 중 하나이다. 특히 Swift에서 함수는 일급 객체이기 때문에 하나의 값으로도 사용할 수 있다. Swift에서 함수는 다른 언어보다 훨씬 다양한 모습으로 존재하는 것을 미루어 보았을 때 아주 중요한 파트로 볼 수 있다. 함수? 메서드? 함수와 메서드는 기본적으로 같다. But 상황이나 위치에 따라 다른 용어로 부르는 것뿐이다! 메서드 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수 함수 모듈 전체에서 전역적으로 사용할 수 있는 함수 즉, 함수가 위치하거나 사용되는 범위 등에 따라 호칭이 달라질 뿐, 함수라는 것 자체에는 변함이 없다!! 함수의 정의와 호출 기본적인 함수의 정의와 호출 func 함수이.. Swift 2022. 6. 27. Swift) ch6.흐름 제어 6.1 조건문 조건문은 어떠한 값이 특정 조건에 해당할 때만 선택적으로 코드를 실행시켜준다. 대표적으로 if-else 문과 switch-case 문이 있다. 6.1.1 if 구문 값이 if 조건에 맞아 떨어지면 if의 코드가 실행된다. 만약 else if 문이 있다면 if 후에 순서대로 조건을 비교한다. 끝까지 맞는 조건이 없다면 else 구문이 실행된다. else if 와 else 구문은 생략할 수 있다. let first: Int = 5 let second: Int = 5 var biggerValue: Int = 0 if first > second { biggerValue = first } else if first == secocnd { biggerValue = first } else if (firs.. Swift 2022. 6. 24. Swift) ch5.연산자 이번 포스팅에서는 제가 생각하기에 기본적인 연산자들에 관한 내용만 기재되어 있습니다. 비트 연산과 오버플로 , 사용자 정의 연산자 등과 관련된 내용은 포함되어있지 않습니다. 5.1 연산자의 종류 💡할당 연산자 A = B 할당(대입) 연산자: A에 B의 값을 할당한다. 서로 다른 데이터 타입이라면 오류가 발생하니 주의하자. 💡산술 연산자 A + B 더하기 연산자 A - B 빼기 연산자 A * B 곱하기 연산자 A / B 나누기 연산자 A % B 나머지 연산자: A를 B로 나눈 나머지를 반환 💡비교 연산자 A == B A와 B가 같은 값인지 비교 후 Bool 값을 반환 A >= B A가 B보다 크거나 같은 값인지 비교 후 Bool 값을 반환 A B A가 B보다 큰 값인지 비교 후 Bool 값을 반환 A < .. Swift 2022. 6. 22. Swift) ch4.데이터 타입 고급 ch4.데이터 타입 고급 4.2 타입 별칭 스위프트에서 기본으로 제공하는 데이터 타입이든, 사용자가 임의로 만든 데이터 타입이든 이미 존재하는 데이터 타입에 임의로 다른 이름을 부여할 수 있다. 기존에 사용하던 데이터 타입의 이름과 프로그래머가 만들어준 이름 모두 사용할 수 있다. typealias 키워드를 사용한다. typealias MyInt = Int let age: MyInt = 100 var year: Int = 2000 // MyInt는 Int로 같은 타입이기 때문에 밑 예시가 가능하다. year = age print(year) // 100 4.3 튜플 타입의 이름이 따로 지정되어 있지 않은, 프로그래머 마음대로 만드는 타입으로 '지정된 데이터의 묶음' 이라고도 표현함. 튜플에 포함될 데이터의.. Swift 2022. 6. 19. Swift) ch3.스위프트 처음 시작하기 기본 명명 규칙 Swift는 대소문자를 구별한다. ex) Var - var, Let - let 를 다르게 인식한다. 💡변수, 상수, 함수, 메서드, 타입 등의 이름으로 사용할 수 없는 경우 Swift에서 미리 정한 예약어 or 키워드 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름 연산자로 사용될 수 있는 기호 ex) +, -, *, / 숫자로 시작하는 이름 공백이 포함된 이름 💡카멜케이스 (Camel Case) 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스를 사용 ex) isNewInput, getNumber 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는 대문자 카멜케이스를 사용 ex) Calcul.. Swift 2022. 6. 15. Swift) 객체지향 프로그래밍(OOP) 내가 공부하고 있는 Swift는 여러 가지 프로그래밍 패러다임을 차용한 다중 패러다임 프로그래밍 언어이다. 크게 보면 명령형, 객체지향, 그래밍, 함수형, 프로토콜 지향 프로그래밍 패러다임을 차용했고 정확하게는! 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임을 지향한다고 한다... 사실 하나만 제대로 학습해도 좋은 성과라고 생각하기에 처음 듣는 단어들이 나올지라도 당황하지 말자..! 어쨌든 결과적으로 Swift에서 가장 강조하는 부분은 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임이다. 그럼 나는 왜 Swift를 공부하며 객체 지향 프로그램을 알아야 할까? -> 기존의 C 언어는 명령형 프로그래밍 패러다임을 차용했으며, C++, JAVA 등의 언어는 명령형, 객체지향 프로.. Swift 2022. 6. 9. 이전 1 다음