SlideShare a Scribd company logo
스위프트의 기초
- 상수와 변수, 옵셔널
창원대학교 정보통신공학과 김대호 & 박동규
2015. 3
목차
•상수와 변수(Constants & Variables)
•튜플(Tuples)
•다양한 자료형
•옵셔널(Optional)
상수와 변수
• 상수(Constant) : 값을 지정받으면 바꿀 수 없음
• 변수(Variable) : 값을 지정 받아도 언제나 바꿀 수 있음
print 함수
• println 함수를 이용하여 출력함
• C언어의 복잡한 %d, %f, %-10.3f 와 같은 출력 지정자가
필요하지 않다
• println(“숫자 num = (num)”) 과 같이 출력함
상수와 변수
상수와 변수
상수는 초기화를 하면 변경 할 수 없다.
상수와 변수명
- 유니코드 문자를 포함하여 어떠한 문자든 사용할 수 있음
let π = 3.14159
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"
상수와 변수
변수와 상수의 형(type)은 컴파일러가 추정함
타입 명시(Type Annotations)
• var num = 100과 같이 변수를 선언하면, Swift에서는
num을 Int형으로 추정함
• 상수나 변수를 만들때 어떤 형태의 값이 저장될 지 명확
하게 타입을 명시할 수 있음
타입 명시(Type Annotations)
출력
• println() 메서드를 사용하여 상수와 변수의 현재 값을 출
력할 수 있다
• Objective-C 의 NSLog와 비슷한 기능을 한다
출력
주석문
• C++ 언어와 같이 // 와 /* */ 주석의 두가지를 사용할 수
있다
• 프로그래밍의 실행결과에는 영향을 주지 않으나 매우 중
요한 요소이다.
세미콜론
• C,C++ 언어는 문장의 끝에 ;(세미콜론)을 반드시 달아야 한다.
• 스위프트에서는 문장의 끝에 ;이 필요하지 않다. 한 줄에 여러
문장을 입력할 경우 ;을 달아준다
타입
• 정수 : 34, -40과 같은 소수점 단위가 없는 숫자를 포함
• Int의 범위는 -2,147,483,648~2,147,483,647
• UInt 는 부호가 없는 양의 정수형
• 부동 소수점 수 : 3.14159, 2.718, …
• Double : 64비트 부동소수점 수를 표현
• Float : 32비트 부동소수점 수를 표현
• 1.2e2는 1.2*102
를 의미함( 120.0과 동일함 )
타입
• 부울형(Bool)
• true, false라는 기본적인 이진형 타입을 제공함
• 문자형(Character)
• 하나의 문자를 표현, let cow: Character = "🐮"
• 문자열(String)
• “hello cwapp.org”와 같은 문자의 컬렉션
튜플(Tuples)
• 여러 타입형 값들을 하나의 상수, 변수 값로 만듬
• 구조체와 비슷한 역할
튜플(Tuples)
튜플(Tuples)
초기화 부분, Int 형 String 형이 함께 상수값에 묶여져 있다.
튜플(Tuples)
elements, 0부터 첫번째 요소를 불러온다
튜플(Tuples)
변수형 튜플로서,
요소의 값을 변화 시킬 수 있다.
튜플(Tuples)
반대로, 선언했던 부분을
순서를 가진 튜플로 재생성하여 가져 올수 있다
옵셔널(Optionals)
• 상수와 변수의 값의 유, 무를 검서할 때 사용
• 어떤 값이 다른 값과 같은지 다른지 검사하는 것이 아
니라 값 자체가 있는지 없는지를 검사하는 경우가 필요
함
• nil을 이용한 값의 유무 체크
옵셔널(Optionals)
• Objective-c에서의 nil의 사용은 존재하지 않는 객체에
대한 포인터를 의미 - 사용의미가 다름
• 네트워크로 정보를 받아오는 프로그램을 가정하면 네트
워크 사정으로 인해 정보가 전송되지 않아서 nil이 들어올
경우 심각한 문제를 일으키게 된다
• program crash가 발생함
• Swift에서의 “nil” 은 정말로 데이터가 없음이라는 것으로
명시
옵셔널
옵셔널(Optionals)
옵셔널(Optionals)
If a variable is declared as an optional, it can be nil.
In fact all optionals start with a value of nil until they are set to something:
옵셔널(Optionals)
옵셔널 타입을 하면 변수의 사용(연산 처리)이
불가능하다
옵셔널 타입변수에 !를 달면 일시적으로 unwrapping이 되어서
optional 변수가 아닌척 한다
옵셔널(Optionals)
변수 옆에 느낌표를 붙여 강제 언랩핑을 시키면
옵셔널 타입도 연산이 가능하다.
옵셔널(Optionals)
toInt() 메서드는 String값을 Int 형으로 바꾸게 되는데
옵셔널 Int? 타입로 바꾼다
옵셔널(Optionals)
옵셔널 바인딩
• 옵셔널의 값이 nil 인지 아닌지 우선적으로 구분
• 옵셔널로 타입된 값을 본래 상수(혹은 변수)로 사용하도
록 만들 때 사용
옵셔널 바인딩
옵셔널 체인
• 옵셔널 타입으로 선언 한 메소드나 프로퍼티를 좀 더 간
단하게 가져올수 있도록 만든 기능
옵셔널 체인
현재 Person Class 는 name 프로퍼티와
age 프로퍼티를 가진다
PersonRecord는 person 이라는
Person클래스 옵셔널 타입을 가진다.
옵셔널 체인
person 프로퍼티에 ?를 붙여
Person() 의 name 에 액세스를 가능하도록한다
하지만 별도의 person 프로퍼티에
오브젝트를 생성하지 않았으므로 nil 값이오게된다.
옵셔널 체인
Q & A
참고자료
http://seorenn.blogspot.kr/2014/06/swift-optionals.html
http://lean-tra.github.io/Swift-Korean/
Thank you

More Related Content

PDF
Swift(var & let, tuple, optional binding)
PDF
SwiftSeminar(Enumerations, Structures, Classes)
PDF
3.unsupervised learing(epoch#2)
PDF
4.representing data and engineering features
PPTX
4.representing data and engineering features(epoch#2)
PDF
5.model evaluation and improvement(epoch#2) 2
PDF
사이킷런 최신 변경 사항 스터디
PDF
3주차 스터디
Swift(var & let, tuple, optional binding)
SwiftSeminar(Enumerations, Structures, Classes)
3.unsupervised learing(epoch#2)
4.representing data and engineering features
4.representing data and engineering features(epoch#2)
5.model evaluation and improvement(epoch#2) 2
사이킷런 최신 변경 사항 스터디
3주차 스터디

What's hot (18)

PPTX
2.supervised learning(epoch#2)-2
PDF
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
PDF
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
PDF
Python basic grammer
PDF
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
PDF
5.model evaluation and improvement(epoch#2) 1
PDF
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
PPTX
2.supervised learning(epoch#2)-1
PDF
5.model evaluation and improvement
PPTX
2.supervised learning(epoch#2)-3
PPTX
[2011 05 21] 4장 제어
PPTX
Java generics
PPTX
150709 알고리즘문제풀이팁
PDF
9 swift 클로저1
PDF
Swift 세미나
PDF
TML studio & Beep 알고리즘 스터디, 오리엔테이션
PPTX
[2011 05 21] 4장 제어
PPTX
파이썬 숫자,변수,문자열
2.supervised learning(epoch#2)-2
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
Python basic grammer
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
5.model evaluation and improvement(epoch#2) 1
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
2.supervised learning(epoch#2)-1
5.model evaluation and improvement
2.supervised learning(epoch#2)-3
[2011 05 21] 4장 제어
Java generics
150709 알고리즘문제풀이팁
9 swift 클로저1
Swift 세미나
TML studio & Beep 알고리즘 스터디, 오리엔테이션
[2011 05 21] 4장 제어
파이썬 숫자,변수,문자열
Ad

Similar to 2 swift 상수,변수,튜풀 옵셔널 (6)

PDF
2 swift 상수_변수_튜플
PPTX
Python
 
PPTX
C review
PPTX
C++11 Tuple
PPTX
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
PDF
[Swift] Tuple
2 swift 상수_변수_튜플
Python
 
C review
C++11 Tuple
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
[Swift] Tuple
Ad

More from Changwon National University (20)

PDF
생성인공지능둘러보기.pdf
PDF
2011 app center Changwon National Univ.
PDF
인공지능의 파도가 온다
PDF
Mobile Healthcare Application
PDF
PDF
알아두면 편리한 macOS 에디터 단축키와 기능
PDF
키보드 기호의 이름 알아보기(한국어, 영어)
PDF
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
PDF
20 2 강의를 마치며
PDF
20 1 코딩스타일
PDF
18 2 파이썬표준라이브러리
PDF
18 1 파이썬패키지
PDF
17 2 필터함수와 맵함수
PDF
17 1 람다함수
PDF
16 1 상속과super()
PDF
15 2 클래스정의와self
PDF
14 4 슬라이싱
PDF
14 3 리스트함수
PDF
14 1 리스트의 메소드
생성인공지능둘러보기.pdf
2011 app center Changwon National Univ.
인공지능의 파도가 온다
Mobile Healthcare Application
알아두면 편리한 macOS 에디터 단축키와 기능
키보드 기호의 이름 알아보기(한국어, 영어)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
20 2 강의를 마치며
20 1 코딩스타일
18 2 파이썬표준라이브러리
18 1 파이썬패키지
17 2 필터함수와 맵함수
17 1 람다함수
16 1 상속과super()
15 2 클래스정의와self
14 4 슬라이싱
14 3 리스트함수
14 1 리스트의 메소드

2 swift 상수,변수,튜풀 옵셔널