Swift 기초 정리(26)
-
[Swift 기초] 참조타입과 값타입
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. Class / Struct /Enum Class Struct Enum Type Reference Value Value Subclassing O X X Extension O O O 클래스만 유일하게 참조타입, 상속할 수 있음(단일상속) 1-1. 구조체는 언제 사용하나? 전달 → 참조가 아닌 복사를 원할 때 자신을 상속할 필요가 없거나, 자신이 다른 타입을 상속받을 필요가 없을 때 2. 값과 참조타입 Value: 데이터를 전달할 때 값을 복사하여 전달 Reference: 데이터를 전달할 때 값의 메모리 위치를 전달 2-1. 값타입(Value) struct, enum, tuple 각 인스턴스마다 (별도의 메모리에) 데..
2022.03.19 -
[Swift 기초] 사용자정의타입
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 구조체 struct 이름 { /* 구현부 */ } struct Sample{ //타입안에 들어가있는 변수: 프로퍼티 //인스턴스 프로퍼티 var mutableProperty: Int //가변 프로퍼티 let immutableProperty: String //불변 프로퍼티 - 인스턴스 생성 후 수정할 수 없음 //타입 프로퍼티 static var typeProperty: Int //타입안에 들어가있는 함수: 메서드 //인스턴스 메서드 func instanceMethod(){ } //타입 메서드 static func typeMethod(){ } } 구조체(Structures): 서로 다른 자료형의 변수들을 묶어 하나..
2022.03.18 -
[Swift 기초] 클로저 Closure
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 클로저 {(매개변수 목록) -> 반환타입 in //in은 반환형과 상태를 구분 짓는 구문 /*실행 코드*/ } {} 형식의 코드 블럭 → 클로저 표현을 통해 문장을 짧고 간단하게 만들 수 있다. 일회용 함수를 작성할 수 있는 구문 변수, 상수 등으로 저장하거나, 매개변수처럼 전달 인자로 전달되거나 사용할 수 있는 코드 블럭 역할 함수: 이름이 있는 클로저, 클로저의 일종 함수 역시 다른 함수의 매개변수로 사용될 수 있다. 클로저는 func와 함수 이름이 생략된 경량 함수 객체이다. 1-1. 함수와 클로저 사용 함수는 클로저의 일종이기 때문에 클로저 변수에 함수를 할당할 수 있다. //함수 func sumFunct..
2022.03.14 -
[Swift 기초] 제너릭
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 제너릭 func 함수명(_ 매개변수1: inout 타입형1, _ 매개변수2: inout 타입형2){ /*함수 구현*/ } 제네릭(generic): 어떤 호환 데이터 타입과도 동작할 수 있는 함수를 만들 수 있다. 함수와 메서드를 선언할 때는 전달할 인자의 타입을 명시적으로 선언하면 → 같은 실행 코드지만 서로 다른 데이터 타입을 사용해야 할 때는 반복 작성이 불가피한 경우가 있다. ⇒ 코드의 반복/ 중복 문제를 해결하고, 표현성을 향상해 준다. 제너릭 타입은 자료형에 무관한 유연하면서도 재사용이 가능한 코딩을 할 수 있다. Swift의 강력한 기능이며 Swift의 표준 라이브러리는 제너릭으로 구현되어 있다. ex..
2022.03.11 -
[Swift 기초] 함수
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 함수 기초 함수(function): 재사용을 목적으로 만드는 이름을 갖는 캡슐화된 코드 블록 함수는 매개변수(prameter)를 받을 수 있고 값을 반환할 수도 있으나, 필요에 따라서는 그렇게 하지 않을 수도 있다. 함수는 코드의 어디에도 선언될 수 있다. //매개변수가 있고 리턴값이 있는 함수의 선언 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 { /*함수 구현*/ return 반환값 } //매개변수가 있고 리턴값이 없는 함수의 선언 - 반환타입(Void) 생략 가능 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 .....
2022.03.11 -
[Swift 기초] 제어구문-반복문
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. for-in 구문 for item in items { //item: iteration으로 들어올 item //items: iteration을 돌 collection type /*실행 구문*/ } 기존 언어의 for-each 구문과 유사 item을 사용하지 않는다면 _를 사용해서 무시할 수 있음 범위 반복문: 범위 연산자의 값이 전달된다 범위연산자(range operator): 값의 범위를 쉽게 나타낼 수 있는 연산자 고정 범위) n...m: n 이상 m 이하 ex) 1...5: 5번 개방 범위) n..
2022.03.07 -
[Swift 기초] 제어구문 - 조건문(흐름제어)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 흐름제어: 프로그램의 실행될 코드와 그것들의 순서를 결정하는 것 1. if-else if 조건 { /*실행 구문*/ }else if 조건 { /*실행 구문*/ }else { /*실행 구문*/ } if-else 구문의 기본형태, if만 단독적으로 사용해도 되고, else if, else와 조합하여 사용 가능 조건 값을 감싸는 소괄호는 선택사항, 중괄호는 필수 if문: 조건식의 결과가 true이면 해당 코드 블록을 실행하며, false면 실행하지 않는다. 조건식은 변수, 상수, 연산자, 함수 등으로 구성될 수 있다. if 뒤의 조건 값에는 Bool 타입의 값만 위치해야 함, 빈 문자열이나 배열도 명확한 길이가 0인지 검사..
2022.03.07 -
[Swift 기초] 컬렉션 타입
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 컬렉션 타입: 여러 값들을 모아서 저장하는 데이터 타입 Array, Dictionary, Set 1. Array: 순서(index)가 있는 리스트 형태의 컬랙션 //Array 선언 및 생성 빈 Int Array 생성 var SomeArray: Array = Array() var arr1: Array = [] var arr2: [Int] = Array() var arr3: [Int] = Int var arr4: [Int] = [] var arr5 = Int() //array는 여러 리터럴 문법을 활용할 수 있어 표현 방법이 다양하다. 배열에는 같은 타입의 값들이 차례대로 저장되며, 이 값들은 저장된 위치를 나타내는 인덱..
2022.03.06 -
[Swift 기초] 튜플 Tuple
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 Tuples var errorCode = (230, "null point assingment") Swift 에서 사용하는 값의 무리지음(grouping of Values) 괄호 () 를 사용하여 아이템을 정의, 여러 타입의 값들을 하나의 상수, 변수 값으로 만듬 ()안에 쉼표를 이용해서 동일한 형, 또는 서로 다른 형의 자료값을 묶어 하나의 자료형으로 취급 //초기화 부분, Int, String 형이 함께 상수값에 묶여져 있다. var errorCode = (203, "Method Not Allowed") //(Int, String) //dot연산을 통해 튜플 원소에 직접 접근하고 요소의 값을 변화시킬 수 있다. pr..
2022.03.06 -
[Swift 기초] Any, AnyObject, nil
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. Any var someAny: Any = 100 Swift의 모든 타입을 지칭하는 키워드 var someAny: Any = 100 someAny = "어떤 타입도 수용 가능" someAny = 3.14 let someDouble: Double = someAny //컴파일 에러 다른 타입에 Any타입을 할당할 수 없다. Cannot convert value of type 'Any' to specified type '~’ Any타입에 다른 타입을 할당할 수는 있다. var someAny: Any var someDouble: Double = 3.143 someAny = someDouble print(someAny) /..
2022.02.17 -
[Swift 기초] 기본 데이터 타입
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 변수(variable): 프로그램에서 사용할 필요가 있는 값을 저장하는데 사용 운영체제는 우리가 변수를 생성할 때 그것을 저장하기 위해 특정한 양의 메모리를 할당한다. Bool, Int, UInt, Float, Double, Character, String 1. Bool var someBool: Bool = true ture, false라는 기본적인 이진형 타입을 제공한다. Bool 타입에 0과 1을 할당할 수 없다. cannot assign value of type ‘Int’ to type ‘Bool’ 2. Int var someInt: Int = 100 64 bit 정수형 타입 –2,147,483,648 ~ 2,1..
2022.02.17 -
[Swift 기초] 주석과 세미콜론
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 주석문 // /* .. */ func sayHello(){ print("Hello") } sayHello() //sayHello() /*sayHello() sayHello()*/ //Hello //한번만 출력 2. 세미콜론 세미콜론은 문장의 끝에 붙이지 않아도 된다. 세미콜론으로 여러 문장을 한 줄에 쓸 수 있다. //명시적으로 isRun의 형을 Bool형으로 선언 var isRun: Bool = false; //Bool 형으로 추정 var isEat = true; var isSlad = true 참고하였습니다. 감사합니다. https://www.inflearn.com/course/창원대학교-박동규-교수의-swi..
2022.02.17