일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- Java
- War Game
- web
- 자료구조
- 시간복잡도
- PHP
- ftz
- HTML
- SWiFT
- 정렬 알고리즘
- pwnable.kr
- 백준
- 큐
- System
- OSI
- ftz level13
- Stack
- 암호수학
- 파일 시스템
- 재귀
- 두근두근 자료구조
- 파이썬
- 스택
- windosws wbcs
- LoB
- level13
- 미로 탐색 알고리즘
- windosw 문자열
- C
- c언어
- Today
- Total
목록Programming (130)
나의 기록, 현진록

구조체와 클래스를 생성할 때는 지금까지 기본 이니셜라이저를 사용해 인스턴스를 생성했다면. 초기화는 클래스나 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비 과정입니다. 초기화가 완료된 인스턴스는 사용 후 소멸 시점이 오면 소멸합니다. 11.1 인스턴스 생성 초기화 과정은 새로운 인스턴스를 사용할 준비를 하기 위하여 저장 프로퍼티의 초깃값을 설정하는 등의 일을 합니다. ㅇ]이니셜 라이저를 정의하면 초기화 과정을 직접 구현할 수 있습니다. 그렇게 구현된 이니셜라이저는 새로운 인스턴스를 생성할 수 있는 특별한 메서드가 됩니다. 스위프트의 이니셜라이저는 반환 값이 없습니다. 이니셜라이저의 역할은 그저 인스턴스의 첫 사용을 위해 초기화하는 것뿐입니다. 이니셜라이저는 해당 타입의 새로운 인스턴스를 생성하기 위해..

10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net GitHub - dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com GitHub - dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 10829번 - 이진수 변환 성공 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 3636 1899..

스위프트 프로그래밍 3판 - 야곰 지음 10.2 메서드 메소드는 특정 타입에 관련된 함수를 뜻합니다. 클래스, 구조체, 열거형 등은 실행하는 기능을 캡슐화한 인스턴스 메서드를 정의할 수 있습니다. 또한, 타입 자체와 관련된 기능을 실행하는 타입 메서드를 정의할 수도 있습니다. 타입 메서드는 기존의 프로그래밍 언어에서의 클래스 메서드와 유사한 개념입니다. 구조체와 열거형이 메서드를 가질 수 있다는 것은 기존 프로그래밍 언어와 스위프트 간의 큰 차이점입니다. 스위프트에서는 프로그래머가 정의하는 타입(클래스, 구조체, 열거형 등)에 자유롭게 메서드를 정의할 수 있습니다. 10.2.1 인스턴스 메서드 인스턴스 메서드는 특정 타입의 인스턴스에 속한 함수를 뜻합니다. 인스턴스 내부의 프로퍼티 값을 변경하거나 특정 ..

스위프트 프로그래밍 3판 - 야곰 지음 연산 프로퍼티와 저장 프로퍼티는 모두 타입을 정의하고 해당 타입의 인스턴스가 생성되었을 때 사용할 수 있는 인스턴스 프로퍼티입니다. 인스턴스 프로퍼티는 인스턴스를 새로 생성할 때마다 초깃값에 해당하는 값이 프로퍼티의 값이 되고, 인스턴스마다 다른 값을 지닐 수 있습니다. 각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티를 타입 프로퍼티라고 합니다. 타입 프로퍼티는 타입 자체에 영향을 미치는 프로퍼티입니다. 인스턴스의 생성 여부와 상관없이 타입 프로퍼티의 값은 하나며, 그 타입의 모든 인스턴스가 공통으로 사용하는 값(C언어의 static constant와 유사), 모든 인스턴스에서 공용으로 접근하고 값을 변경할 수 있는 변수(C 언어의 static 변수와 유사) 등..

스위프트 프로그래밍 3판 - 야곰 지음 프로퍼티 감시자를 사용하면 프로퍼티 값이 변경됨에 따라 적절한 작업을 취할 수 있습니다. 프로퍼티 감시자는 프로퍼티 값이 새로 할당될 때마다 호출됩니다. 이 때 변경되는 값이 현재의 값과 같더라도 호출합니다. 이 때 변경되는 값이 현재의 값과 같더라도 호출합니다. 프로퍼티 감시자는 저장 프로퍼티뿐만 아니라 프로퍼티를 재정의해 상속받은 저장 프로퍼티 또는 연산 프로퍼티에도 적용할 수 있습니다. 물론 상속받지 않은 연산 프로퍼티에는 프로퍼티 감시자를 사용할 필요가 없으며 할 수도 없습니다. 연산 프로퍼티의 접근자와 설정자를 통해 프로퍼티 감시자를 구현할 수 있기 때문입니다. 연산 프로퍼티는 상속받았을 때만 프로퍼티 재정의를 통해 프로퍼티 감시자를 사용합니다. 프로퍼티 ..

스위프트 프로그래밍 3판 - 야곰 지음 연산 프로퍼티는 실제 값을 저장하는 프로퍼티가 아니라, 특정 상태에 따른 값을 연산하는 프로퍼티입니다. 인스턴스 내/외부 값을 연산하여 적절한 값을 돌려주는 접근자(getter)의 역할이나 은닉화된 내부의 프로퍼티 값을 간접적으로 설정하는 설정자(setter)의 역할을 할 수도 있습니다. 클래스, 구조체, 열거형에 연산 프로퍼티를 정의할 수 있습니다. 굳이 메소드를 두고 연산 프로퍼티를 사용하는 이유 인스턴스 외부에서 메소드를 통해 인스턴스 내부 값에 접근하려면 메소드를 두 개(접근자, 설정자) 구현해야 합니다. 또한 이를 감수하고 메소드로 구현한다 해도 두 메소드가 분산 구현되어 코드의 가독성이 나빠질 수 있습니다. 다만 연산 프로퍼티는 접근자인 get메소드만 구..

인스턴스를 생성할 때 프로퍼티 값이 필요 없다면 프로퍼티를 옵셔널로 선언해줄 수 있습니다. struct CoordinatePoint{ var x: Int var y: Int } class Position{ //현재 사람 위치는 모를 수도 있습니다. var point: CoordinatePoint? let name: String init(name: String){ self.name = name } } //이름은 필수지만 위치는 모를 수도 있습니다. let currentPoint: Position = Position(name: "hyunjin") //위치를 알게되면 그 때 위치 값을 할당해줍니다. currentPoint.point = CoordinatePoint(x: 20, y: 10) 10.1.2 지연 저..

스위프트 프로그래밍 3판 - 야곰 지음 9.3 구조체와 클래스의 차이 같은점 값을 저장하기 위해 프로퍼티를 정의할 수 있습니다. 기능 실행을 위해 메소드를 정의할 수 있습니다. 서브스크립트 문법을 통해 구조체 또는 클래스가 갖는 값(프로퍼티)에 접근하도록 서브스크립트를 정의할 수 있습니다. 초기화될 때의 상태를 저장하기 위해 이니셜라이저를 정의할 수 있습니다. 초기 구현과 더불어 새로운 기능 추가를 위해 익스텐션을 통해 확장할 수 있습니다. 특정 기능을 실행하기 위해 특정 프로토콜을 준수할 수 있습니다. 다른점 구조체는 상속할 수 없습니다. 타입캐스팅은 클래스의 인스턴스에만 허용됩니다. 디이니셜라이저는 클래스의 인스턴스에만 활용할 수 있습니다. 참조 횟수 계산은 클래스의 인스턴스에만 적용됩니다. 두 타입..
스위프트 프로그래밍 3판 - 야곰 지음 9.1 구조체 9.1.1 구조체 정의 struct 구조체이름{ 프로퍼티와 메소드 } struct BasicInformation { var name: String var age: Int } var info: BasicInformation = BasicInformation(name: "hyunjin", age: 24) info.name = "abc" //변경 가능 info.age = 100 //변경가능 let subinfo: BasicInformation = BasicInformation(name: "rupy", age: 50) subinfo.name = "abc" //변경 불가 subinfo.age = 100 //변경 불가 구조체에 기본 생성된 이니셜라이저의 매개변수..

스위프트 프로그래밍 3판 - 야곰 지음 var myName: String? = "hyunjin" myName = nil if myName != nil{ print("My name is \(myName)") }else{ print("myName == nil") } 위에서 사용한 if 구문을 통해 myName이 nil인지 아닌지 먼저 확인하는 것은 다른 프로그래밍 언어에서 NULL 값을 체크하는 방식과 비슷하다. 앞서 설명한 것처럼 옵셔널을 사용하는 의미도 사라진다. 그래서 스위프트는 조금 더 안전하고 세련된 방법으로 옵셔널 바인딩을 제공한다 옵셔널 바인딩은 옵셔널에 값이 있는지 확인할 때 사용한다. 만약 옵셔널에 값이 있다면 옵셔널에서 추출한 값을 일정 블록 안에서 사용할 수 있는 상수나 변수로 할당해서 ..