반응형

Programming 183

[Swift] 문법 다시보기 - 클로저(closure)

클로저 함수형 프로그래밍 패러다임을 접할 때 꼭 알아야할 개념 클로저, 제네릭, 프로토콜, 모나드 등이 결합하여 강력한 스위프트 C 언어나 Objective-C의 블록 또는 람다와 유사 클로저는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말함 → 함수는 클로저의 한 형태이다 { (**매개변수들**) -> **반환 타입** in **실행 코드** } // 클로저 표현 간소화 let reversed1: [String] = names.sorted { (first: String, second: String) -> Bool in return first > second } let reversed2: [String] = names.sorted { (first, second) -> Bool in retur..

Programming/Swift 2021.10.14

[Swift] 문법 다시보기 - 인스턴스 생명 및 소멸, 접근제어

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 인스턴스 생성 및 소멸 실패 가능한 이니셜라이저(Failable initializer) 클래스, 구조체, 열거형 등에 모두 정의 가능 실패했을 때 nil 반환하여 타입이 옵셔널로 지정, init? 키워드 사용 접근제어 모듈과 소스파일 스위프트의 접근제어는 모듈과 소스파일을 기반으로 설계 모듈 : 배포할 코드의 묶음 단위, 통상 하나의 프레임워크나 라이브러리 또는 애플리케이션이 모듈 단위가 될 수 있음, import 사용 소스파일 : 하나의 스위프트 소스 코드 파일 기본 접근 제어 키워드 : internal

Programming/Swift 2021.10.13

[Swift] 문법 다시보기 - 메서드

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 메서드 인스턴스를 함수처럼 호출하도록 하는 메서드 특정 타입의 인스턴스를 문법적으로 함수를 사용하는 것처럼 보이게 하는 메서드 callAsFunction 이라는 이름의 메서드 구현 매개변수와 반환타입만 다르면 원하는 만큼 생성 가능, mutating, throws, rethrows도 함께 사용 가능 타입 메서드 타입 자체에 호출이 가능한 메서드를 타입 메서드라고 부른다, static 또는 class 사용 가능 static 키워드 사용, 해당 키워드 사용 시 상속 불가 class로 정의하면 상속 후 메서드 재정의가 가능

Programming/Swift 2021.10.13

[Swift] 문법 다시보기 - 프로퍼티

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 프로퍼티 타입 프로퍼티 각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티, 타입 자체에 영향을 미친다 저장 타입 프로퍼티 → 변수 또는 상수 선언 연산 타입 프로퍼티 → 변수로만 선언 저장 타입 프로퍼티 → 반드시 초깃값 설정, 지연 연산, 지연 저장 프로퍼티와는 조금 다르게 다중 스레드 환경이라고 하더라도 단 한 번만 초기화된다는 보장을 받는다. 코드 class AClass { // 저장 타입 프로퍼티 static var typeProperty: Int = 0 // 저장 인스턴스 프로퍼티 var instanceProperty: Int = 0 { didSet { // Self.typeProperty는 // AClass.typeProper..

Programming/Swift 2021.10.12

[Swift] 문법 다시보기 - 구조체와 클래스의 차이

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 구조체와 클래스의 차이 같은점 값을 저장하기 위해 프로퍼티를 정의할 수 있다 기능 실행을 위해 메서드를 정의할 수 있다 서브스크립트 문법을 통해 구조체 또는 클래스가 갖는 값(프로퍼티)에 접근하도록 서브스크립트를 정의할 수 있다 초기화될 때의 상태를 지정하기 위해 이니셜라이저를 정의할 수 있다 초기구현과 더불어 새로운 기능 추가를 위해 익스텐션을 통해 확장할 수 있다 특정 기능을 실행하기 위해 특정 프로토콜을 준수할 수 있다 다른점 구조체는 상속할 수 없다 타입캐스팅은 클래스의 인스턴스에만 허용된다 디이셜라이저는 클래스의 인스턴스에만 활용할 수 있다 참조 횟수 계산(RC)은 클래스의 인스턴스에만 적용된다 값 타입과 참조 타입 구조체는 값 ..

Programming/Swift 2021.10.12

[Swift] 문법 다시보기 - 함수

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 함수 일급객체, 하나의 데이터 타입으로 사용할 수 있음 각 함수는 매개변수 타입과 반환 타입으로 구성된 하나의 타입으로 사용(정의)할 수 있다는 뜻 어떤 상황에서 유용하게 사용할 수 있을지 고민! 함수의 전달인자로 값을 전달할 때는 보통 값을 복사해서 전달한다 값이 아닌 참조를 전달하려면 입출력 매개변수(inout)를 사용한다 var numbers: [Int] = [1, 2, 3] func nonReferenceParameter(_ arr: [Int]) { var copiedArr: [Int] = arr copiedArr[1] = 1 } func referenceParameter(_ arr: inout [Int]) { arr[1] = 1 ..

Programming/Swift 2021.10.11

[Swift] 문법 다시보기 - Switch

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. Switch fallthrough case 연속 실행 where 조건 확장 (ex: case "사원" where 연차 > 5;) default 한정된 범위의 값을 입력 값으로 받게될 때 값에 대응하는 각 case를 구현한다면 default는 구현하지 않아도 된다. 그렇지 않다면 default는 필수 예제 : case deafult, case _ unknown 열거형에 새로운 case가 추가되었을 때 논리적 오류가 발생할 수 있는 여지가 있음 이런 문제를 방지하기 위한 속성 예제 : @unknown case _

Programming/Swift 2021.10.10

[Swift] 문법다시보기 - 열거형

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 열거형 연관된 항목들을 묶어서 표현할 수 있는 타입 프로그래머가 정의해준 항목 값 외에는 추가/수정 불가 연관 값 스위프트의 열거형 각 항목이 연관 값을 가지게 되면 기존 프로그래밍 언어의 공용체 형태를 띌 수도 있다. 열거형 내의 항목(case)이 자신과 연관된 값을 가질 수 있다. 연관 값은 각 항목 옆에 소괄호로 묶어 표현할 수 있다. // ex. 연관 값을 갖는 열거형 enum MainDish { case pasta(taste: String) case pizza(dough: String, topping: String) case chiken(withSource: Bool) case rice } var dinner: MainDish =..

Programming/Swift 2021.10.10

[Golang] 연산자

연산자 연산자란? 특정한 작업을 위해 사용하는 기호를 가리킵니다 대입연산자, 산술연산자, 비교연산자, 논리연산자 등이 존재합니다 대입연산자 대입연산자는 앞에서 이미 다루었습니다 = 와 := 이 바로 대입연산자에 해당합니다 산술연산자 수학적인 계산에 사용되는 연산자 +, -, *, /, %, ++, — 산술 연산 후 대입을 축약할 수 있습니다 +=, -=, *=, /=, %= 산술연산 주의점 - 산술연산은 같은 자료형끼리만 가능합니다 다른 자료형과의 연산을 하려면 자료형을 변환하면 됩니다 var num3 int = 10 var num4 float32 = 2.5 fmt.Println(num3 - num4) // error fmt.Println(float32(num3) - num4)) // 결과: 7.5 fm..

Programming/Golang 2021.10.09
728x90
반응형