1. Swift Tour
군산대학교 컴퓨터정보통신공학부 컴퓨터정보공학전공
남 광 우
kwnam@kunsan.ac.kr
Swift 3 Tour and Language Guide by Apple
꼼꼼한 재은씨의 Swift 2 프로그래밍
2. Swift 개요
• Apple의 Mac OS X와 iOS용 응용 개발을 위해 개발
된 언어
• 2014년 6월 2일 WWDC 2014에서 발표
• App 개발시 Objective‐C를 대체하기 위한 언어
• LLVM 등 최신 프로그래밍 언어 기능 포함
3. Swift 특징
• 데이터 타입 추론
• Java script, python 과 같은 dynamic binding 언어 아님
• C, C++과 같은 static binding 언어
• 그러나, 데이터 타입 추론 기능 등을 이용하여
dynamic binding 처럼 유연성을 제공
4. • LLVM( Low‐Level Virtual Machine)
• LLVM 채택으로 인한 비교적 빠른 성능
• 안정성(Safe) : Objective‐C 대비
• Array Bounds check기능
• 포인터 직접 접근 차단 기능
• 현대적(Modern)
• Optional, Generics, Closure, Tuple 등 현대적 기능 제공
Swift 특징
5. Hello World in Swift
print( “ Hello World “)
• Hello World 하기
• main() 함수가 필요없음
6. Swift의 문법적 특성
• Header 파일을 작성할 필요가 없음
• *.h *.c 와 같이 전처리를 위한 헤더파일 구분 불필요
• 변수 선언과 상수 선언의 구분
• Swift는 대소문자를 구분
• let A = 30
• let a = 40
var a : Int //변수선언
let A = 4 // 상수선언
a = 5
7. Swift의 문법적 특성
• 문장 끝의 세미콜론(;)은 옵션
• main() 함수가 없음
• @UIApplicationMain 어노테이션 사용
• 문자열 뿐만 아니라 문자도 큰 따옴표
print( “hello” )
print( “hello2”) ;
var str : String = “Hello”
var ch : Character = “H”
8. Simple Values
• 변수와 상수의 선언
• 타입의 추정
var myVariable = 42 // 변수
myVariable = 50
let myConstant = 42 // 상수
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
9. Simple Values
• 서로 다른 타입 값의 변환
• 변수 상수의 이름은 한글 한자도 가능
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
var 한글변수 = 3
let ㅎㄱㅂㅅ = 5.3
10. 기본 자료형
• Int
• Int8, Int16, Int32, Int64
• Uint
• UInt8, UInt16, UInt32, UInt64
• Double & Float
• Bool
• String
• Character
11. 기본 자료형
• 자료형의 선언과 사용의 세가지 방법
// first
var day = 7
// second
var day : Int
day = 7
// third
var day : Int = 7
// 다음은 error!!!!
var day
day = 7
12. 닫힌 범위 연산자
• 범위 값을 나타내는 연산
• 1…5 : 1, 2, 3, 4, 5
• 1..<5 : 1, 2, 3, 4
• for 문에서의 사용
• hello 100번 print 하기
for i in 1…100
{
print( “Hello” )
}
13. 문자열 template
• 변수, 상수 값을 대입하기 위한 template
• (이스케이프) 문자의 사용
• hello world 1..<100 까지 번호와 함께 찍기
let apples = 3
let oranges = 5
let appleSummary = "I have (apples) apples."
let fruitSummary = "I have (apples + oranges) pieces of fruit.
16. 흐름 제어 : For 구문
• for 구문의 구조
• ; 생략가능
for( 초기값; 비교값; 증가값)
{
{
for var i = 0; I < 10; i++
{
print( “ (i) 번째 실행“)
{
for (var i = 0; I < 10; i++)
{
print( “ (i) 번째 실행“);
{
Swift 2 O;Swift 3 X
17. 흐름 제어 : For 구문
• if 문과 함께 사용
• for ~ in 구문에서 루프상수의 생략
• 아래에서 변수 i는 필요없음
• 그러므로 _ 로 대체 가능
for ( var i = 0 ; ; i++ )
{
if ( i>= 10 )
break;
}
for i in 1…100
{
print( “Hello” )
}
for _ in 1…100
{
print( “Hello” )
}
Swift 2 O;Swift 3 X
Swift 2 O;Swift 3 O