일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 파이썬중급
- 토플
- 개발일지
- 인프런파이썬
- 교환학생토플
- 토플공부수기
- 인프런오리지널
- 유학토플
- 자바스크립트
- 토플공부
- IOS프로그래밍
- 노드JS
- 파이썬
- 인프런파이썬강의
- swift
- 파이썬웹크롤링
- 인프런강의
- 인프런
- 카카오톡채팅봇
- Python3
- 파이썬중급강의
- JS
- nodeJS
- 스위프트문법
- 웹크롤링
- TOEFL
- 리프2기
- javascript
- 우리를위한프로그래밍
- 교환학생준비
- Today
- 361
- Total
- 213,487
목록앱 (9)
먹고 기도하고 코딩하라
(14) 프로토콜 프로토콜은 규약 등을 말한다. 스위프트에서는 어떤 역할 수행을 위한 메소드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의한 것이다. 자바 언어의 인터페이스 같은 느낌이다. 자바에서도 클래스 설계를 할 때 일단 인터페이스를 만들고 그 인터페이스를 상속하는 클래스를 만들어 실제 구현은 거기서 하듯이 프로토콜도 그런 느낌이 아닐까 하는 생각이 든다. 프로토콜을 확장하는 것도 가능한데, 익스텐션에서 더 자세히 살펴보기로 한다. 프로토콜은 클래스나 구조체처럼 생겼다. protocol Talkable { var topic: String { get set } var lang: String { get } // 타입 프로퍼티는 static 키워드로 선언 가능 // static var typeProper..
(11) 옵셔널 체이닝 옵셔널 체이닝은 nil일 수도 있는 프로퍼티, 메소드, 서브스크립트에 질의하는 과정이다. 이 포스팅에서 다루는 주제는 구조체/클래스/열거형의 연장선상인 셈이다. 여러 질의를 연결할 수도 있는데, 그 질의문 중 어느 하나라도 값이 nil이면 전체 결과는 nil이 된다. 옵셔널이 연속으로 연결되는 경우에 유용하게 쓸 수 있다. 옵셔널 체이닝은 옵셔널값 뒤에 ?를 붙여서 표현할 수 있다. 옵셔널 체이닝 값은 항상 옵셔널값이 된다. 이 값을 보면 옵셔널 체이닝이 잘 됐는지 아니면 nil이 반환됐는지를 알 수 있다. 이 예제는 스위프트 가이드보다 야곰님 강의가 더 보기 좋을 거 같다. 그 예제를 보자. 옵셔널 체이닝의 설명을 보면 알 수 있다시피 구조체, 클래스 등에서 쓸 수 있는 것이기 ..
저번 포스팅에서 함수와 어려운 클로저, 옵셔널 값, 조건/반복문을 살펴봤다. 이번에는 값들을 묶을 수 있는 구조체와 클래스, 열거형을 알아보자. (8) 구조체 스위프트 구조체는 상속이 불가한 값 타입이다. 값 타입이란 상수, 변수에 전달될 때 값이 복사되어 전달되는 것이지 레퍼런스가 넘어가는 것이 아니라는 뜻이다. 상속이 필요없을 때 쓰기 좋은 자료형이다. struct 키워드로 선언할 수 있다. struct Sample { // 일반적인 인스턴스 저장 프로퍼티 // 항상 같은 초기값을 갖는다면, 프로퍼티 선언과 동시에 값을 할당하는 것이 좋음 (기본 프로퍼티) var mutProperty: Int = 100;// 가변 프로퍼티 let immutProperty: Int = 200// 불변 프로퍼티 // 타..
저번에 함수와 다소 이해하기 어려운 클로저 개념에 대해 살펴봤다. 이번에는 옵셔널 변수, 그리고 기본적인 조건/반복문을 살펴보고자 한다. (6) 옵셔널 변수 옵셔널 변수란 값이 있을 수도 있고 없을 수도(nil일 수도) 있는 변수를 뜻한다. nil의 가능성을 명시적으로 표현한 것이다. 역으로 설명하자면, 옵셔널 변수가 아니라면 그 변수의 값은 절대 nil일 수 없다. 전달받은 값이 옵셔널이 아니라면 그냥 nil 체크 안 하고 써도 된다. 옵셔널 변수는 타입 뒤에 '?'을 쓰거나 Optional을 써서 옵셔널 변수라고 선언하게 된다. 이렇게 쓰면 "이 변수엔 값이 있을 수도 없을 수도 있어~ 참고해~" 이런 뜻이 된다. var optionalString: String?; var optionalString2..
저번 포스팅에서는 기본적인 변수 선언 방식과 자료형에 대해 알아봤다. 이번에는 함수와 클로저를 알아본다. (5) 함수 (5)-(1) 선언 함수 키워드는 func 이다. func 함수이름 (매개변수 이름: 타입, 이름: 타입, ...) -> 반환형 { } 으로 나타낼 수 있다. 가령, sayHi라는 이름의 함수가 있고, String 타입의 name을 매개변수로 받아 print를 수행하는 함수가 있다고 쳐 보자. 이 때, 이름이 없다면 "John Doe"라고 하기로 하자. 그러면 이렇게 쓸 수 있다. func sayHi(name: String = "John Doe") -> Void { print("Hi, I'm \(name)."); } sayHi();// Hi, I'm John Doe. sayHi(name:..
재작년에 모바일앱 프로그래밍에서 swift를 배웠는데 복습 차 다시 공부 중이다. 올 연말까지는 앱을 잘하고 싶다. 그리고 잘할 거다! (0) swift 에는 main 함수가 없다. 세미콜론은 선택! 필수가 아니다. 큰따옴표를 이렇게 """ 3개를 쓰고 """ 3개를 써서 닫으면, 그 안에 여러 줄을 입력할 수 있다. 백슬래시를 이용해 문자를 여러 줄 쓸 수 있다. let multipleLines = """ Do or do not. \ There is no try. """ print문 안에 여러 변수들을 같이 쓰고 싶다면 +을 쓰거나 , 을 쓸 수 있다. (1) 변수 선언 swift의 변수 선언 키워드는 let 과 var 가 있다. let 이 상수, var 이 변수이다. 자바스크립트에서는 const 키워..
다른 언어에서 '객체'로 불리는 것은 Dart에서 Map이라는 자료형으로 다루고 있다. Map은 쉽게 말해 key-value 쌍으로 이뤄진 객체이다. 키, 값은 각각 어떤 자료형이든지 상관없다. Map은 동적 컬렉션 자료형으로, 늘리고 줄일 수 있다. 또한 Map은 이터레이션 가능한 객체이다. 1. Map 선언 제일 간단한 방법으로 중괄호 { }를 써서 선언하는 방법이 있다. 중괄호 안에 바로 키: 값을 넣어도 상관없고, 아래 예제 코드처럼 일단 빈 Map을 선언한 다음 값을 넣는 방법도 있다. Map my_map = {}; my_map['name'] = 'my map'; print(my_map);// {name: my map} Map을 선언하는 또다른 방법은 new Map() 생성자를 사용하는 것이다...
저번에 '생존을 위한 Dart 톺아보기' 라는 포스팅을 발행했다. 거기서 리스트와 맵, 클래스 개념까지 다루자니 글이 한도끝도없이 길어질 것 같아서 이렇게 새로 쓴다. 다른 데서 '객체'라고 하면 흔히 생각하는 그 자료형이 Dart에도 있다. Map이라는 이름으로. 이 객체와 리스트, 클래스를 많이 쓰니 오늘은 이 얘기를 해보자. 저번과 같이 티스토리 소스 코드는 Dart 언어를 지원하지 않아 엉뚱하게 하이라이팅될 수 있다. 1-1. 크기 고정 리스트 (fixed length list) 크기가 고정된 리스트는 런타임 동작 시에 길이를 바꿀 수 없다. 리스트를 만들 때 크기를 픽스하려면 다음과 같이 선언하면 된다. var my_list = new List(3);// 크기 3짜리 리스트를 만듦 var you..