본문 바로가기

swift28

Struct만들기 도전과제 도전과제 1. 강의 이름, 강사 이름, 학생수를 가지는 Struct 만들기 (Lecture) 2. 강의 어레이와 강사이름을 받아서 , 해당 강사의 강의 이름을 출력하는 함수 만들기 3. 강의 3개 만들고 강사이름으로 강의 찾기 더보기 import SwiftUI // 도전과제 // 1. 강의 이름, 강사 이름, 학생수를 가지는 Struct 만들기 (Lecture) // 2. 강의 어레이와 강사이름을 받아서 , 해당 강사의 강의 이름을 출력하는 함수 만들기 // 3. 강의 3개 만들고 강사이름으로 강의 찾기 struct Lecture { let name: String let instructor: String let numOfStudent: Int } func printLectureName(from instr.. 2021. 10. 12.
구조체와 클래스의 차이점 구조체와 클래스 지금까지 기본적인 Basic Type과 그것들을 어떻게 저장하는지 배웠다. 이 값들을 많이 저장 할 때, 서로 관계하는 값들을 한꺼번에 관리하거나 표현하고 싶을 때 어떻게 할까? iOS강의 정보라면 강사정보, 강의 이름, 학생 수 등등 낱개 관리가 아니라 덩어리로 관리한다. 관계가 있는 여러 데이터를 묶어서 표현 Object = Data + Method Structure VS Class Structure Class Value Types Reference Types Copy Share 컴퓨터 안에 할당 되는 공간 Stack 컴퓨터 안에 할당 되는 공간 Heap import SwiftUI class PersonClass { var name: String var age: Int init(nam.. 2021. 10. 11.
Collection - Closure, Capturing Values Collection - Closure { ( parameters ) -> returntype in statements } 클로저 란? 이름이 없는 Method 혹은 함수 이다 공식 문서링크 https://docs.swift.org/swift-book/LanguageGuide/Closures.html Global and nested functions, as introduced in Functions, are actually special cases of closures. Closures take one of three forms: Global functions are closures that have a name and don’t capture any values. Nested functions are c.. 2021. 10. 10.
Collection - Set Collection - Set 기본 개념 - 순서가 없다!! - 중복이 없는 유니크한 아이템을 관리할때 사용한다. import UIKit var someArray: Array = [1, 2, 3,1] //[1, 2, 3, 1] var someSet: Set = [1,2,3,1,2] //{3, 1, 2} // collection의 공통 property someSet.isEmpty someSet.count someSet.contains(1) //true someSet.insert(5) someSet //{3, 1, 2, 5} someSet.remove(1) someSet //{2, 5, 3} 2021. 10. 10.
옵셔널 옵셔널 소개 // Optional?? var name: String="Joon" var dogName:String="Mozzi" var carName:String=??? 이름을 정의 할때, 강아지이름을 정의할 때 사용하는 선언을 보자 만약 자동차이름을 할당해야하는데 아직 내가 자동차가 없다면? 없는 것에 대해 표현하려고 하니 애매해진 경우가 있다. 그런 것은 Boolean을 통해 유무를 먼저 체크를 할 수 있지만. 그것은 코드를 깔끔하지 못하게 만드는 요소이다. 내가 없는 것을 어떻게 표현할 것인가? 어떠한 값을 갖고있지 않는 경우 혹은 반대를 모두 표현할 수 있다. 존재하지 않음은 nil로 표현할 수 있다. Optional은 박스에 비유가능 박스에 value가 있으면 그대로 표현, 없으면 nil로 표현.. 2021. 10. 7.
함수의 고급기능(1. 오버로드 2. In-out parameter 3. 함수안에 함수를 넣기) 기본적인 함수의 구조 func functionName(param: ParamType) -> ReturnType { //..... return returnValue } //external name을 사용하는 경우 func functionName(externalName param: ParamType) -> ReturnType { //..... return returnValue } 1. 오버로드 같은 함수의 이름을 갖지만 파라미터나 리턴이 달라지는 경우가 있는데 그럴때 오버로드가 사용된다. 사실 오버라이딩, 오버로딩은 Swift에 국한된 게 아니라, 객체지향 프로그래밍에서 쓰이는 개념이다 -> 키워드 오버라이드 오버로드 override, overload func sum() { } func sum() { } /.. 2021. 10. 6.
(중간점검) 문법 공부 중 느낀 점 1. 기존 작전 1.1빠르게 훑어보기 일단 스위프트를 빠르게 훑어보려는 작전이고 그걸 어떻게 응용하는지 반복 학습을 하려고 했다. 여기서 응용이란 이게 내가 만들고싶은 결과물에 어떤 영향을 미치는지를 말한다. 1.2 문제 풀어보기 하지만 문법을 외우는데 급급해서 자꾸 안외워지는 것만 들여다 보고 있었다. 어느정도 이 방법도 맞긴 하지만 이걸 써봐야하겠다는 생각이 들었다. 일단 백준 단계별문제풀이를 풀어봤는데 일단 입출력 2번문제에서 막혔다. 1.3 모르는 것 파악하기 - 보간법 기본적으로 보간법이 익숙치가 않았던게 원인이었다. https://h1guitar.tistory.com/32?category=959106/ 명명법 / 콘솔로그 / 문자열 보간법 1. 명명법 Lower Camel Case : fuct.. 2021. 10. 2.
상수와 변수 1. 상수와 변수 선언 // 상수와 변수 선언 let 상수이름: 타입 = 값 var 변수이름: 타입 = 값 // 값의 타입이 명확하다면 타입 생략 가능 let 상수이름 = 값 var 변수이름 = 값 // 상수와 변수 활용 let constant: String = "차후에 변경이 불가능한 상수 let" var variable: String = "차후에 변경이 가능한 변수 var" variable = "변수는 이렇게 차후에 다른 값을 할당할 수 있지만" // constant = "상수는 차후에 값을 변경할 수 없습니다" // 오류발생 2. 상수 선언 후, 값 할당하기 선언을 한 뒤, 나중에 값을 할당하려는 상수나 변수는 반드시 타입을 명시해야 합니다. let sum: Int let inputA: Int = .. 2021. 9. 26.