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