Welcome to Swift 4/5
enum StudyPersonDetail { case Name(String) case Age(Int) case EyeSight(Float,Float)}
Closures
// 클로저는 내부함수(Nested Function)이 외부함수의 맥락(Context)에 접근할 수 있는 것을 가르킨다 - 생활코딩
function init() { var name = "Mozilla"; function displayName() { alert(name); } displayName();}init();
// Example of Closures in JavaScript- MOZILLA DEVELOPER NETWORK
Closures
// 클로저는 내부함수(Nested Function)이 외부함수의 맥락(Context)에 접근할 수 있는 것을 가르킨다 - 생활코딩
function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName;}
var myFunc = makeFunc();myFunc();
// Example of Closures in JavaScript- MOZILLA DEVELOPER NETWORK
Closures
// 클로저는 내부함수(Nested Function)이 외부함수의 맥락(Context)에 접근할 수 있는 것을 가르킨다 - 생활코딩
func makeFunc()->(()->String){ var name = "Swift" func displayName() -> String { return name } return displayName;}
var myFunc = makeFunc();myFunc();
// Example of Closures in JavaScript- MOZILLA DEVELOPER NETWORK// 클로저는 내부함수(Nested Function)이 외부함수의 맥락(Context)에 접근할 수 있는 것을 가르킨다 - 생활코딩
Closures
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
func makeFunc()->(()->String){ var name = "Swift" func displayName() -> String { return name } return displayName;}
var myFunc = makeFunc();myFunc();
Closures
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
func makeAdder(x:Int)->Int->Int{ func add(y:Int) -> Int{ return x+y } return add}
var add5 = makeAdder(5)var add10 = makeAdder(10)
add5(1)add10(2)
Closures
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
func makeAdder(x:Int)->Int->Int{ func add(y:Int) -> Int{ return x+y } return add}
var add5 = makeAdder(5)var add10 = makeAdder(10)
add5(1)add10(2)
Closures’s Syntax
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
func backwards(s1:String, s2:String )->Bool{ return s1>s2}var sorted = sort( names, backwards)
Closures’s Syntax
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
var sorted = sort( names, {(s1:String, s2:String)->Bool in return s1>s2 })
Inferring Type From Context
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
var sorted = sort( names, {(s1:String, s2:String)->Bool in return s1>s2 })
Inferring Type From Context
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
var sorted = sort(names, {1:String, s2:String)->Bool in return s1>s2 })
Inferring Type From Context
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
var sorted = sort(names,{s1,s2 in return s1>s2 })
Implicit Returns
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
var sorted = sort(names,{s1,s2 in s1>s2 })
Shorthand Argument Names
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
var sorted = sort(names,{$0>$1})
Operator Functions
// 클로져를 이루는 구성요소 = 함수 + 함수가 만들어진 환경// myFunc이라는 클로져는 displayName이라는 함수와, name이라는 변수를 포함한다.
let names = ["cody","zed","jimmy","allen"]
var sorted = sort(names,>)
Enumeration Syntax
enum StudyPerson { case Kimin, GwangHo, Cody}
var enumValue = StudyPerson.KiminenumValue = StudyPerson.GwangHoenumValue = .Cody
Enumeration Syntax
var enumValue = Study.Kimin
switch enumValue {case Kimin: // blah blahcase GwangHo: // blah blahcase Cody: // blah blah}
Enumeration Syntax
enum StudyPersonDetail { case Name(String) case Age(Int) case EyeSight(Float,Float)}
var codyName = StudyPersonDetail.Name("Cody")var codyAge = StudyPersonDetail.Age(32)var codyEyeSight = StudyPersonDetail.EyeSight(0.2,0.1)
switch codyEyeSight {case .EyeSight(let left, let right): left rightcase .EyeSight(let left, let right): println("제 시력은 \(left):\(right) 입니다.")default: "defulat case를 지정해야 합니다."}