ios

Language/Swift

Swift - 프로퍼티(Properties)

프로퍼티의 정의 및 사용프로퍼티는 구조체, 클래스, 열거형 내부에 구현할 수 있다.(열거형 내부에는 연산 프로퍼티만 구현 가능) 연산 프로퍼티는 var키워드로만 선언 가능하다. 연산 프로퍼티는 읽기 전용으로는 구현 가능하지만, 쓰기 전용으로는 불가능하다. 읽기, 쓰기 둘 다 가능하게 하려면 get, set 블럭을 구현하면 된다. set 블럭에서 암시적 파라미터로 newValue를 사용할 수 있다. 종류저장 프로퍼티(Stored Properties)연산 프로퍼티(Computed Properties)타입 프로퍼티(Type Properties) 코드 예시struct Student { // 인스턴스 저장 프로퍼티 var name: String = "" var `class`: String ..

Language/Swift

Swift - 클로저(Closures) - 2

지난 글에 이어 클로저에 대해 더 자세히 들여다보는 시간을 가져보려한다. 여러 클로저 표현기본 클로저 표현func calculate(x: Int, y: Int, method: (Int, Int) -> Int) -> Int { return method(x, y)}이렇게 클로저를 작성하는 것은 이미 저번 글에서 확인했다. 후행 클로저(Trailing Closures)함수 파라미터 마지막으로 전달되는 클로저는 후행 클로저로 함수 외부에 구현할 수 있다. 이는 마치 코틀린 SAM(Single Abstract Method) 변환과 모습이 비슷해보인다.var result: Intresult = calculate(x: 10, y: 10) { (left: Int, right: Int) -> Int in re..

Language/Swift

Swift - 클로저(Closures) - 1

클로저(Closures)는 무엇일까?클로저는 실행 가능한 코드 블럭이다.함수와 달리 이름이 정의되지 않아도 괜찮지만 함수처럼 파라미터 전달 및 리턴 값이 존재할 수 있다.일급 객체로써 변수, 상수 등에 저장이 가능하고 함수의 파라미터에도 전달이 가능하다. 기본 클로저 문법 알아보기{ (parameters) -> returnType in // running code}클로저는 기본적으로 중괄호로 감싸져있다.괄호를 통해 파라미터를 정의하고 "->" 를 이용해 리턴 타입을 명시한다."in" 키워드를 이용해 실행 코드와 분리한다. 간단한 예시로 사용해보기let sum: (Int, Int) -> Int = { (x: Int, y: Int) in return x + y}let result: Int = sum(1..

Language/Swift

Swift - Class, Struct, Enum 비교하기

다시 한 번 요약하는 Class(클래스)전통적인 객체지향 관점의 클래스단일 상속참조 타입 다시 한 번 요약하는 Struct(구조체)상속 불가값 타입 다시 한 번 요약하는 Enum(열거형)상속 불가값 타입열거형은 자체가 하나의 데이터 타입으로 취급되고, case 전부 각각 유의미한 값으로 취급된다. 그럼 Class(클래스)와 비슷한 Struct(구조체)는 언제 사용할까?연관된 값들을 모아 하나의 데이터 타입으로 표현하려 할 때다른 객체나 함수 등에 전달될 때 복사를 원할 때(참조가 아닌)상속해줄 필요가 없거나 다른 타입을 상속받을 필요가 없을 때 여기서 Value(값) vs Reference(참조) 차이가 뭘까Value(값) 타입은 데이터 전달 시 값을 복사하여 전달한다.Reference(참조) 타입은 데..

Language/Swift

Swift - 클래스(Class)

1. 클래스란 무엇일까? 클래스는 참조(reference) 타입이다. 이름은 파스칼 케이스로 작성한다. 클래스는 다중 상속이 불가능하다. 2. 클래스 관련 문법 클래스를 선언할 때는 class 키워드를 사용한다. class Sample { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("instance method") } // 타입 메서드 static func typeMethod() { print("type method - static") } ..

Language/Swift

Swift - 구조체(Struct)

1. 구조체란 무엇일까? 구조체는 값(value) 타입이다. 스위프트에서 대부분 타입은 구조체라고 한다. 타입이름은 파스칼 케이스를 사용한다. 2. 구조체 관련 문법 구조체를 선언할 때는 C언어처럼 struct 키워드를 사용한다. struct Test { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("instance method") } // 타입 메서드 static func typeMethod() { print("type method") } ..

Language/Swift

Swift - 명명법, 콘솔 로그, 문자열 보간법

오늘은 야곰님의 Swift 기초 강의를 부스트코스에서 수강하고 정리해보는 글을 써보려한다. 1. 명명법 다른 언어를 배울 땐 네이밍 컨벤션(Naming Convention) 이런 말도 들었던 것 같은데 정확하진 않지만, 함수, 메소드, 변수, 상수(function, method, variable, constant)에는 Camel Case로 이름을 작성하고 타입(Type : class, struct, enum, extension ...)에는 Upper Camel Case로 이름을 작성한다. 그런데 사실 나는 Upper Camel Case라는 용어보단 Pascal Case가 더 익숙하다. Java와 Kotlin을 배울 때 가르쳐주신 교수님이 Pascal Case라고 알려주셨기 때문이다. 구글에 검색해보니 둘..

BonusTrack02.dev
'ios' 태그의 글 목록