하루에 0.01%라도 성장하자
반응형

Develop 130

Swift 클래스 와 구조체 ( Reference and Value )

이번에는 클래스(Class)와 구조체, 열거형(Struct, enum)을 비교해 보겠다. 클래스(Class) 클래스는 참조타입(Reference Type) 이면서 상속이 가능하다. 구조체(Struct) 구조체는 값 타입(Value Type)이면서 상속이 불가능하다. 열거형(enum) 열거형은 값 타입(Value Type)이면서 상속이 불가능하다. Reference and Value? Reference 데이터를 전달할 때 값의 메모리 위치를 전달. Value 데이터를 전달할 때 값을 복사하여 전달 코드로 알아보자~! Struct ValueType{ var tempVar = 1; } class ReferenceType{ var tempVar = 1; } //Value Type var firstVar = Va..

Develop/iOS 2019.05.09

Swift 열거형 (enum)

열거형은 대체로 다른언어에서 많이 사용되지 않지만, Swift에서는 많이 사용된다고 한다. 또한 Swift만의 특징이 있다고 한다! enum Weekday { case mon case tue case wed case thu, fri, sat, sun } var day : WeekDay = WeekDay.wed; day = .tue; // enum의 모든 요소를 구현하면 default가 필요 없다. // 하나라도 빠지면 default가 필요하다 ( 컴파일러 에러 발생 ) switch day { case .mon : print("mon"); case .tue : print("tue"); case WeekDay.fri : print("fri"); case .wed, .thu, .sat, .sun : print..

Develop/iOS 2019.05.08

Swift 구조체 (Struct)

Swift는 대부분의 타입이 구조체로 이루어져 있다. 구조체 (Struct) 구조체는 값(Value)타입이다. //구조체 선언 struct Sample { var tempVar1 : Int = 100; let tempVar2 : Int = 10; static var typeVar : Int = 200; // 타입 프로퍼티 func sampleFunc(){ print("Sample"); } static func sampleTypeFunc(){ // 타입 메소드 print("Type Func"); } } //구조체 사용 var tempStruct : Sample = Sample(); // 구조체 생성 tempStruct.tempVar1 = 300; // 300으로 변경. Sample.sampleTypeFun..

Develop/iOS 2019.05.08

Swift 옵셔널(Optional)

Swift의 핵심이라고 할 수 있는 옵셔널(Optional)이다. ( 이게 왜 핵심인지 나는 아직 잘 모르겠다... ㅋㅋ ) 옵셔널(Optional) 값이 있을수도, 없을 수도 있음을 표현함. nil이 할당될 수 있는지 표현 [ 옵셔널의 형태 ] enum Optional : ExpressibleByNilLiteral{ case none case some(Wrapped) } 옵셔널을 쓰는 이유 명시적 표현 nil의 가능성을 코드만으로 표현이 가능하다. ( 문서에 null가능 여부를 별도로 쓸 필요가 없다. ) 따라서 문서/주석 작성 시간 절약. 안전한 사용 전달 받은 값이 옵셔널이 아니라면 nil체크 없이 사용 가능 ( nil일 수가 없기 때문에 ) 예외 상황을 최소화 하는 귀찮지만 안전한 코딩 효율적 코..

Develop/iOS 2019.05.08

Swift 반복문

보편적 언어들의 반복문은 크게 세가지다 for while do - while Swift도 크게 다르지 않다. 다만 단어가 다를뿐 for while repeat - while for 우선 기본적으로 foreach문과 비슷한 문법을 가진다. let integers = [1,2,3]; for item in integers { print(item); // integers 배열안에 있는 item이 차례로 들어와 출력된다. } //Dictionary 일 경우에 아래와 같이 사용한다. for (name, age ) in people { print("\(name) : \(age)"); } 우리가 일반적으로 사용하던 방법은 Swift에서는 동작되지 않으며 아래와 같이 사용해야 한다. [ JAVA ] for(int i=0..

Develop/iOS 2019.05.08

Swift Swift의 Switch

Switft의 Switch는 일반 언어들과 조금 다르다. 따라서 사실 if나 switch문은 기본적인 것이라 포스팅을 안하려고 했는데, switch문의 문법이 조금 특이하여 포스팅을 한다. Switch문에는 default가 꼭 있어야 한다. 다른 언어는 switch문에 default가 있어도 되고 없어도 된다. 하지만 Switft는 default가 없는경우 에러가 발생한다. 이또한 nil 문제가 발생하지 않도록 언어적으로 제약을 걸어놓은것 같다. switch문에는 범위연산자가 있다. 이건 바로 소스를 보자. let num : Int = 100; switch(num){ case 1 : print("1"); case 1..

Develop/iOS 2019.05.08

Swift 함수

함수는 어느 언어에나 존재한다. 단지 그 문법이 다를뿐 매커니즘은 같다. 함수 사용법 아래 코드는 함수의 사용법을 정리한 것이다. func 함수이름(매개변수 이름 : 매개변수 타입, 매개변수 이름 : 매배변수 타입 ) -> 반환타입 { return 반환값 } // 일반적인 매개변수 2개와 Int형 반환 func func sum(a:Int, b:Int) -> Int{ return a + b ; } // 반환값이 없는 함수 // 반환값이 없는 경우 Void를 쓴다. func print(a:Int, b:Int) -> Void{ print(a+b); } // 매개변수가 없는 경우 func print() -> Int{ return Int.max; } //매개변수와 반환값이 없는경우 func hello() -> V..

Develop/Swift 2019.05.07

Swift 컬렉션 타입 ( Array, Dictionary, Set)

오랜만에 강의를 들어서 그런지... 진도도 빠르고.. 알아듣기 쉬운데 기분탓인가... 아직은 기초문법이라 그럴수도.. 컬렉션 하나 이상의 데이터를 보관할 수 있는 특수한 자료구조. Swift의 컬렉션 타입 종류 Array 소속된 멤버가 순서를 가진 리스트 형태 Dictionary '키'와 '값'으로 이루어진 타입 map과 비슷함 Set 중복되지 않은 멤버가 순서 없이 존재하는 컬렉션 Array 배열이며 다른 언어와 개념의 차이는 크게 없다. var integers : Array = Array(); integers.append(1); // 1값을 가진 멤버 추가. integers.append(100); integers.contains(100); // 100이라는 값이 있는지에 대한 여부 확인. intege..

Develop/Swift 2019.05.07

Swift Any, AnyObject, nil

Swift에는 모든 자료형을 받을 수 있는 데이터 형태가 있다. 약간 java의 Object나 javascript의 var 같은 느낌인줄 알았는데 살짝 다르다. Any Any는 Double, Float, Int, UInt, Chracter, String 등 다양한 자료형의 값을 받을 수 있다. 클래스와 같은 Object형태는 받을 수 없다. var anyV : Any; var test1 : Int = 10; var test2 : String = "test"; anyV = test1; // Any = Int ( 가능 ) anyV = test2; // Any = String ( 가능 ) test2 = anyV // String = Any ( 불가능 ) 다만 Any형을 가진 변수가 String형을 가진 변수를..

Develop/Swift 2019.05.07

Swift 상수와 변수의 선언, 데이터 타입

상수와 변수의 선언 상수 : 한번 정하면 변하지 않는 수 혹은 값 변수 : 언제든지 변경될 수 있는 수 혹은 값 Swift에서는 상수와 변수의 선언하는 방법이 다르다. 상수는 let으로, 변수는 var로 선언한다. let Test : String = "상수"; // let var Test2 : String = "변수"; // var 변수와 상수를 선언하고 바로 초기값을 입력하지 않아도 된다. let sum : Int; // 초기값 입력 X let num1 : Int = 1; let num2 : Int = 2; sum = num1 + num2; //num1, num2 상수값을 더한 값으로 초기값 설정 이후 sum에 다른 값을 넣으면 오류 발생 sum = 10; // !!!!오류 발생 !!!! 상수, 변수를..

Develop/Swift 2019.05.07
반응형