본문 바로가기

분류 전체보기

(176)
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 11. 옵셔널 11. 옵셔널 옵셔널의 정의 및 특징 정의 값이 있을 수도 있고 없을 수도 있는 것 특징 옵셔널이 아닌 상수에 nil을 할당하면 오류가 발생한다. 옵셔널이 필요한 이유 옵셔널은 nil의 가능성을 명시적으로 표현한 것이다. 1) nil 가능성을 문서화 하지 않아도 코드만으로 충분히 표현할 수 있다. → 문서/주석 작성 시간을 절약할 수 있다. 2) 전달받은 값이 옵셔널이 아니라면 nil체크를 하지 않더라도 안심하고 사용할 수 있다. → 효율적인 코딩을 할 수 있다. → 예외 상황을 최소화하는 안전한 코딩이다. 예시 // someOptionalParam can be nil func someFunction(someOptionalParam: Int?) { // ... } // someParam must not ..
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 10. 반복문 10. 반복문 var integers = [1, 2, 3] let people = ["fuyukawa": 10, "eric": 15, "mike": 12] 위의 것이 기본적으로 주어졌다고 가정한다. for - in 형식 for item in items { code } 예시 1 for integer in integers { print(integer) } 예시 2 for (name, age) in people { print("\(name): \(age)") } while 형식 while (condition) { code } 조건문과 마찬가지로 괄호는 선택사항이다.(괄호를 생략해도 상관 없다.) 예시 whlie integers.count > 1 { integers.removeLast() } 앞에서와 마찬가지로..
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 09. 조건문 09. 조건문 If-else 형식 if condition { statements } else if condtion { statements } else { statements } 예시 if (someInteger 100 { print("100 초과") } else { print("100") } 기존의 방식과 차이점은 조건문의 괄호를 생략해도 괜찮다라는 점이다. 스위프트의 조건에는 항상 Bool 타입이 들어와야 한다. someInteger는 Bool 타입이 아닌 Int 타입이기 때문에 컴파일 오류가 발생한다. if someInteger {} //오류 발생 switch 형식 switch value { case pattern:..
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 08. 함수 고급 08. 함수 고급 매개변수 기본값 기본값을 갖는 매개변수는 매개변수 목록 중에 뒤쪽에 위치하는 것이 좋다. 형식 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 = 매개변수 기본값 ...) -> 변환타입 { 함수의 구현부 return 반환값 } 예시 func greeting(friend: String, me: String = "fuyukawa") { print( "Hello \(friend)! I'm \(me)") } 매개변수 기본값을 가지는 매개변수는 생략할 수 있다. greeting(friend: "hana") // Hello hana! I'm fuyukawa greeting(friend: "john", me: "eric") // Hello john! I'm eric ..
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 07. 함수 기본 07. 함수 기본 함수 정의 함수선언의 기본형태 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 { 함수의 구현부 return 반환값 } 예시 func sum(a: Int, b: Int) -> Int { return a + b } 반환 값이 없는 함수 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ... ) -> Void { 함수의 구현부 return } 예시 func printMyName(name: String) -> Void { print(name) } 축약 형태의 반환 값이 없는 함수 func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) { 함수의 구현부 return } 예시..
[Hackerrank] 36. Magic Spells 36. Magic Spells [ 난이도: Hard | 분야: Inheritance ] 1. 과제 과제 설명 비디오 게임을 하는 동안, 매우 강력한 암흑의 마법사와 싸워야 한다. 그가 거리를 두며 마법을 영창하는동안, 오직 수 초만이 반응하도록 시간이 주어지고 역영창을 해야 한다. 역영창이 효과가 있기 위해서는 상대방이 어떤 영창을 하는지 알아야 한다. 마법사는 그의 마법을 영창하기 위해 스크롤을 사용하고 가끔씩 그의 스테미나에 저장되어 있는 일반 영창을 사용한다. 이 경우, 영창에서 스크롤의 이름을 추출해야 한다. 그 다음 이 새 영창이 영창 저널의 공식과 얼마나 비슷한지 알아야 한다. 에디터의 잠겨있는 코드의 내용을 분석하고 counterspell 함수를 완성하라. 이 챌린지를 해결하기 위해 Dyna..
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 06. 컬렉션 타입(Array, Dictionary, Set) 06. 컬렉션 타입(Array, Dictionary, Set) Intro Array: 순서가 있는 리스트 컬렉션 Dictionary: 키와 값의 쌍으로 이루어진 컬렉션(Hashmap과 비슷하다고 생각하면 쉽다) Set: 순서가 없고, 멤버가 유일한 컬렉션 Array 빈 Int Array 생성 var integers: Array = Array () 멤버 추가 1이라는 멤버 추가 integers.append(1) 100이라는 멤버 추가 integers.append(100) 당연하게도, 정수형으로 선언했기 때문에 실수가 들어갈 수 없다. integers.append(101.1) // 오류 발생 멤버 존재 확인 integers.contains(100) 값 제거하기 특정 인덱스의 값을 제거할 때 integers...
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 05. Any, AnyObject, nil 05. Any, AnyObject, nil Intro Any: Swift의 모든 타입을 지칭하는 키워드다. AnyObject: 모든 클래스 타입을 지칭하는 프로토콜이다. nil: 없음을 의미하는 키워드이다. Any var someAny: Any = 100 someAny = "어떤 타입도 수용 가능하다." someAny = 123.12 Any는 어느 타입이든 저장할 수 잇다. 다만, 다른 자료형과 할당하는 건 불가능하다. let someDouble: Double = Any // 오류 발생 AnyObject class SomeClass {} var someAnyObject: AnyObject = SomeClass() 다만, 다른 데이터형을 넣으면 오류가 난다. someAnyObject = 123.12 // ..
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 04. 기본 데이터 타입 04. 기본 데이터 타입 기본 데이터 타입 Swift에는 다음과 같은 데이터 타입이 있다. - Bool - Int - UInt - Float - Double - Character - String Bool var someBool: Bool = true someBool = false Bool 타입에서는 true와 false를 가지는데, C언어와는 다르게 0과 1을 넣으면 Bool 에 Int를 넣은 것으로 인식하여 타입이 안 맞다고 판단한다. Int var someInt: Int = -300 마찬가지로 Int 형에 Float를 넣으면 에러가 발생한다. UInt var someUInt: UInt = 100 부호가 없는(unsigned) 정수형이다. ★ Swift는 자료형에 매우 엄격한 언어이다. Float va..
[IOS 프로그래밍을 위한 스위프트 기초] 1단원 03. 상수와 변수 03. 상수와 변수 Swift는 함수형 프로그래밍 패러다임을 적용한 만큼 불변 객체를 굉장히 중요하게 여기고 있다. 그래서 상수 표현이 굉장히 많이 등장하게 된다. 상수, 변수의 선언 상수의 선언 - 키워드: let - 양식: let 이름: 타입 = 값 ★ Swift는 띄어쓰기도 중요하기 때문에 신경써야 한다. 변수의 선언 - 키워드: var - 양식: var 이름: 타입 = 값 이때, 타입이 명확하다면 타입을 생략할 수 있다. let 이름 = 값 var 이름 = 값 다만, 타입의 유추가 어렵다면 타입을 생략할 수 없다. 상수와 변수의 활용 let constant: String = "차후에 변경이 불가능한 상수 let" var variable: String = "차후에 변경이 가능한 변수 var" var..