본문 바로가기

분류 전체보기139

프로퍼티 오늘은 프로퍼티의 다양한 사용에 대해 공부했다. 프로퍼티는 구조체, 클래스, 열거형 내부에 구현 할 수 있다. 약간 C++로 따지자면 생성자, 함수, 변수 등으로 나눠지는 느낌이다. 단 열거형 내부에는 연산 프로퍼티만 구현할 수 있다. 인스턴스 저장 프로퍼티 struct Student { // 인스턴스 저장 프로퍼티 var name: String = "" var `class`: String = "Swift" var koreanAge: Int = 0 } 각 타입에 맞는 것들을 저장 할 수 있는 저장 프로퍼티이다. 인스턴스 연산 프로퍼티 struct Student { // 인스턴스 연산 프로퍼티 var westernAge: Int { get { return koreanAge - 1 } // 직접 저장하고 그.. 2021. 5. 27.
클로저 고급 오늘은 클로저 고급 - 다양한 표현을 알아보았다. func calculate(a: Int, b: Int, method: (Int, Int) -> Int) -> Int { return method(a,b) } var result: Int 먼저 함수에 클로저를 불러와 사용하게끔 선언해주고, 후행 클로저 result = calculate(a: 10, b: 10) { (left: Int, right: Int) -> Int in return left + right } print(result) // 20 후행 클로저 - 클로저가 함수의 마지막 전달인자라면, 마지막 매개변수 이름을 생략한 후 함수 소괄호 외부에 클로저를 구현할 수 있다. 반환타입 생략 result = calculate(a: 10, b: 10, met.. 2021. 5. 26.
TIL - 2021.05.26 구현(Implementation) 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 지칭한다 구현 유형의 예시 알고리즘은 간단한데 코드가 지나칠만큼 길어지는 문제 실수 연산을 다루고,특정 소수점 자리까지 출력해야 하는 문제 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제 적절한 라이브러리를 찾아서 사용하는 문제 완전 탐색 - 모든 경우의 수를 주저 없이 다 계산하는 방법 시뮬레이션 - 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 문제 상하좌우 # 상하좌우 문제 n = int(input()) dx = [0,0,-1,1] dy = [-1,1,0,0] # L R U D con = ['L', 'R', 'U', 'D'] move = list(input().split()) x = 0 .. 2021. 5. 26.
클로저 코드의 블럭이라고도 불리우는 클로저 일급 시민(first-citizen)이기에 변수, 상수 등으로 저장이 가능 하고 전달인자로 전달이 가능하다. (다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체) - 위키피디아 함수는 이름이 있는 클로저. 클로저의 일종이라고 보면 된다. { (매개변수 목록) -> 반환타입 in 실행코드 } 이러면 코드의 블럭이 된다. 매개변수가 필요 없으면 매개변수 를 안넣어도 된다. 함수와 다르게 이름정의는 필요하지는 않지만, 매개변수 전달과 반환 값이 존재 할 수 있다는 점이 동일합니다. 함수는 이름이 있는 클로저입니다. func sumFunction(a: Int, b: Int) -> Int { return a + b } var sumReslut: Int = sumF.. 2021. 5. 24.
클래스 vs 구조체 / 열거형 값 타입/ 참조 타입 class 구조체 열거형 class 는 다른것과 차이점이 거의 없지만, 단일상속만 된다. (인스턴스/타입) 메서드 (인스턴스/타입) 프로퍼티 참조 타입 Apple 프레임워크 대부분의 큰 뼈대는 모두 클래스로 구성 되어있다. 구조체는 다른 언어들의 구조체보다 다양한 기능을 제공한다. 상속이 불가능 값 타입을 가지고 있다. Swift의 대부분의 큰 뼈대는 모두 구조체로 구성되어있다. 열거형 다른 언어의 열거형과는 많이 다른 존재 상속 불가 값 타입 열거형 자체가 하나의 데이터 타입이고 case 하나하나가 다 유의미한 값으로 취급한다. 구조체는 언제 사용하나? 연관된 몇몇의 값들을 모아서 하나의 데이터 타입으로 표현하고 싶을 때 다른 객체 또는 함수 등으로 전달될 때 참조가 아닌 복사를 .. 2021. 5. 24.
열거형(enum) 스위프트의 열거형은 다른 언어의 열거형과는 다르게굉장히 강력한 기능을 가지고 있다. 따라서 많이 알고 있으면 스위프트 언어를 할때 이득이 많이 될 것이다. enum 이름 { case 이름1 case 이름2 case 이름3,이름4,이름5 ... } 열거형의 각 case는 고유의 값으로 취급이 된다. C의 열거형에서는 케이스별로 정수형이 자동으로 취급됐던것과는 다른 것이다. 열거형 사용 enum Weekday { case mon case tue case wed case thu, fri, sat, sun } var day: Weekday = Weekday.mon // 열거형의 케이스를 나타내는 문법은 열거형.타입이름 day = .fri // 축약도 가능, 근데 처음에 선언을 애매하게 해주면 축약 불가능 pri.. 2021. 5. 24.

IT_learning's Commit