일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 배열 만들기1
- 문자열 정렬하기 (1)
- cocoapods 설치 오류
- 조건에 맞게 수열 변경하기 3
- 객체지향
- 프로그래머스
- 프로그래머스 문자열 붙여서 출력하기
- 프로그래머스 주사위 게임1
- 연산자
- 프로그래머스 n번째 원소까지
- 스파르타 코딩클럽 내일배움캠프
- 문자열 붙여서 출력하기
- array
- 프로그래머스 최댓값 만들기(2)
- 스페인어
- swift
- ruby설치
- Error installing cocoapods
- 프로그래머스 문자열 정렬하기 (1)
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 스파르타코딩캠프
- Break
- 프로그래머스 자동커밋
- Til
- 주사위 게임1
- n번째 원소까지
- 프로그래머스 암호 해독
- 프로그래머스 n의 배수 고르기
- 프로그래머스 배열 만들기1
- continue
- Today
- Total
목록Dev (264)
dev._.note
클로저 (Closure) 클로저는 사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 중괄호"{}" 구분된 코드의 블럭. 쉽게 말하면 클로저는 이름이 없는 함수. 따라서 함수는 이름이 있는 클로저라고 할 수 있음. 클로저를 사용한다면 따로 함수를 만들어야 할 불편함 없이 즉석에서 함수를 만들 수 있음. 스위프트의 클로저와 같은 것들 C, C++, Objective-C 의 block Java의 Lambda funtion C#의 Delegates 클로저의 표현 { (매개변수 이름 : 매개변수 타입) -> 반환타입 in 클로저 표현식 코드 } 함수와 굉장히 비슷한 형태를 띄고 있으며 가장 큰 차이점은 이름이 유무임. 클로저에서는 함수처럼 이름이 없음. 인자들을 넣을 수 있고 반환타입까지 설정가능. 그리..
📌 guard문이란 guard 문은 뭔가를 검사하여 그 다음에 오는 코드들을 실행할지 말지 결정하는것, guard 문에 주어진 조건문이 거짓일 때, 여기에 달려 있는 코드블럭이 실행. 조건식에 이 함수가 수행하는데 필요한 조건을 그대로 나타낸다는 점에서 if문에서 부정적인 조건식으로 표현하는것보다 가독성이 높은 장점. if 문과 다르게 else를 항상 달아야 함. 아래 함수는 nil 입력을 가드함. 만일 입력이 nil이면 guard문은 else 절을 수행하고 다른 구문이 수행되기 전에 함수를 return함. guard 조건문 else { 조건문이 false일 떄 실행 } 조건문이 true일 떄 실행 💡 guard문을 사용하여 과도한 들여쓰기 막기 guard문은 다른 언어에 거의 없고 swift언어에만 있..

키오스크 프로그래밍 과제 ## 진행상황 class별로 따로 파일을 빼서 정리해 줌. 하단코드로 text들 사이에 간격을 패딩 값으로 조절함. 각 class마다 적용했다가 부모 class인 common에만 작성 후 상속받은 자식 class들이 재사용하는 방법으로 수정함. 부모 class common class Common { let num : Int var name : String let price : Double let info : String init(num: Int, name: String, price: Double, info: String) { self.num = num self.name = name self.price = price self.info = info } func displayInfo(..
📌 접근 제한자 접근 제한자는 다른 소스 파일이나 모듈의 코드에서 코드 일부에 대한 접근을 제한. [제약이 적음] open < public < internal < fileprivate < private [제약이 많음] open : 모든 소스 파일에서 해당 level 접근 가능 + 모든 곳에서 서브클래싱 가능 public : 모든 소스 파일에서 해당 level 접근 가능 + 같은 모듈 내에서만 서브클래싱 가능 internal : 같은 모듈 내에서만 접근 가능 fileprivate : 같은 소스파일 내에서만 접근 가능 private : 클래스 내부에서만 접근 가능 접근 제한자를 작성하지 않으면 internal로 판단 상위 요소보다 하위 요소가 더 높은 접근 수준을 가질 수 없음. private struct ..
📌 타입 캐스팅(Type Casting) 인스턴스의 타입을 확인하거나, 해당 인스턴스를 자신의 클래스 계층에 있는 상위 혹은 하위 클래스로 처리하는 방법 타입 캐스팅은 is 와 as 연산자로 구현. 이 두 연산자는 값의 타입을 확인하거나 값을 다른 타입으로 지정. 단순하면서도 보고 이해하기 쉬운 표현 방식. 해당 타입이 프로토콜을 따르는지(Protocol Conformance)도 확인가능. 타입 캐스팅 연산자 4종류 expression is type expression as type expression as? type expression as! type is 연산자는 런타임에 expression 이 특정 type 으로 캐스팅 되는지 체크. bool타입 return. as 연산자는 컴파일 단계에서 캐스팅이..
💡 프로퍼티 옵저버 변수에 프로퍼티 옵저버를 정의하여 프로퍼티 값의 변경 사항을 모니터링하고, 미리 구현한 코드로 이에 대응가능. 다시 말하면 해당 프로퍼티를 관찰(observe)하면서 변경 사항이 발생할 때 실행. willSet보다는 didSet이 많이 사용. willSet과 didSet을 둘 다 작성했을 경우 willSet이 먼저 실행. 추가할 수있는 경우 저장 프로퍼티(stored property) 연산 프로퍼티(computed property) 📌 didSet didSet은 새 값이 저장된 직후에 호출. 이전 프로퍼티의 값이 oldValue 로 제공. 📌 willSet willSet은 값이 저장되기 직전에 호출. 새로운 프로퍼티의 값이 newValue 로 제공. var myProperty: Int..
readLine() readLine(strippingNewline:) | Apple Developer Documentation Returns a string read from standard input through the end of the current line or until EOF is reached. developer.apple.com 모든 값을 optional string의 형태로 return 함(정수 입력은 int로 형변환) enter = readLine() let text = readLine()! split을 이용하여 한 줄로 여러 개를 입력 let arr = input.split(separator: " ") let input = readLine()! // 1(띄어쓰기)2 입력 let ar..