Welcome to Swift
4/5
enum StudyPersonDetail {
case Name(String)
case Age(Int)
case EyeSight(Float,Float)
}
โ€ขClosures
โ€ขEnumerations
๋‹ค๋ฃฐ ๋‚ด์šฉ
Closures
// ํด๋กœ์ €๋Š” ๋‚ด๋ถ€ํ•จ์ˆ˜(Nested Function)์ด ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ๋งฅ๋ฝ(Context)์— ์ ‘
๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€๋ฅดํ‚จ๋‹ค - ์ƒํ™œ์ฝ”๋”ฉ
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
}
)
Closuresโ€™s Syntax
{(parameters)->(return type) in
statement
return value
}
Closuresโ€™s Syntax
{(parameters)->(return type) in
statement
return value
}
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 {
Kimin,
GwangHo,
Cody,
}
Enumeration Syntax
enum StudyPerson {
case Kimin
case GwangHo
case Cody
}
Enumeration Syntax
enum StudyPerson {
case Kimin, GwangHo, Cody
}
Enumeration Syntax
enum StudyPerson {
case Kimin, GwangHo, Cody
}
var enumValue = StudyPerson.Kimin
enumValue = StudyPerson.GwangHo
enumValue = .Cody
Enumeration Syntax
var enumValue = Study.Kimin
switch enumValue {
case Kimin:
// blah blah
case GwangHo:
// blah blah
case 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
right
case .EyeSight(let left, let right):
println("์ œ ์‹œ๋ ฅ์€ (left):(right) ์ž…๋‹ˆ๋‹ค.")
default:
"defulat case๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."
}
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
let writer = ["Cody":"Yun"]

Hello Swift 4/5 : Closure and Enum

  • 1.
    Welcome to Swift 4/5 enumStudyPersonDetail { case Name(String) case Age(Int) case EyeSight(Float,Float) }
  • 2.
  • 3.
    Closures // ํด๋กœ์ €๋Š” ๋‚ด๋ถ€ํ•จ์ˆ˜(NestedFunction)์ด ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ๋งฅ๋ฝ(Context)์— ์ ‘ ๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€๋ฅดํ‚จ๋‹ค - ์ƒํ™œ์ฝ”๋”ฉ
  • 4.
    Closures // ํด๋กœ์ €๋Š” ๋‚ด๋ถ€ํ•จ์ˆ˜(NestedFunction)์ด ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ๋งฅ๋ฝ(Context)์— ์ ‘ ๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€๋ฅดํ‚จ๋‹ค - ์ƒํ™œ์ฝ”๋”ฉ function init() { var name = "Mozilla"; function displayName() { alert(name); } displayName(); } init(); // Example of Closures in JavaScript- MOZILLA DEVELOPER NETWORK
  • 5.
    Closures // ํด๋กœ์ €๋Š” ๋‚ด๋ถ€ํ•จ์ˆ˜(NestedFunction)์ด ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ๋งฅ๋ฝ(Context)์— ์ ‘ ๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€๋ฅดํ‚จ๋‹ค - ์ƒํ™œ์ฝ”๋”ฉ function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName; } var myFunc = makeFunc(); myFunc(); // Example of Closures in JavaScript- MOZILLA DEVELOPER NETWORK
  • 6.
    Closures // ํด๋กœ์ €๋Š” ๋‚ด๋ถ€ํ•จ์ˆ˜(NestedFunction)์ด ์™ธ๋ถ€ํ•จ์ˆ˜์˜ ๋งฅ๋ฝ(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)์— ์ ‘ ๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€๋ฅดํ‚จ๋‹ค - ์ƒํ™œ์ฝ”๋”ฉ
  • 7.
    Closures // ํด๋กœ์ ธ๋ฅผ ์ด๋ฃจ๋Š”๊ตฌ์„ฑ์š”์†Œ = ํ•จ์ˆ˜ + ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™˜๊ฒฝ // myFunc์ด๋ผ๋Š” ํด๋กœ์ ธ๋Š” displayName์ด๋ผ๋Š” ํ•จ์ˆ˜์™€, name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. func makeFunc()->(()->String){ var name = "Swift" func displayName() -> String { return name } return displayName; } var myFunc = makeFunc(); myFunc();
  • 8.
    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)
  • 9.
    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)
  • 10.
    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 )
  • 11.
    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 } )
  • 12.
  • 13.
  • 14.
    Inferring Type FromContext // ํด๋กœ์ ธ๋ฅผ ์ด๋ฃจ๋Š” ๊ตฌ์„ฑ์š”์†Œ = ํ•จ์ˆ˜ + ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™˜๊ฒฝ // myFunc์ด๋ผ๋Š” ํด๋กœ์ ธ๋Š” displayName์ด๋ผ๋Š” ํ•จ์ˆ˜์™€, name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. let names = ["cody","zed","jimmy","allen"] var sorted = sort( names, {(s1:String, s2:String)->Bool in return s1>s2 } )
  • 15.
    Inferring Type FromContext // ํด๋กœ์ ธ๋ฅผ ์ด๋ฃจ๋Š” ๊ตฌ์„ฑ์š”์†Œ = ํ•จ์ˆ˜ + ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™˜๊ฒฝ // myFunc์ด๋ผ๋Š” ํด๋กœ์ ธ๋Š” displayName์ด๋ผ๋Š” ํ•จ์ˆ˜์™€, name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. let names = ["cody","zed","jimmy","allen"] var sorted = sort(names, {1:String, s2:String)->Bool in return s1>s2 } )
  • 16.
    Inferring Type FromContext // ํด๋กœ์ ธ๋ฅผ ์ด๋ฃจ๋Š” ๊ตฌ์„ฑ์š”์†Œ = ํ•จ์ˆ˜ + ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™˜๊ฒฝ // myFunc์ด๋ผ๋Š” ํด๋กœ์ ธ๋Š” displayName์ด๋ผ๋Š” ํ•จ์ˆ˜์™€, name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. let names = ["cody","zed","jimmy","allen"] var sorted = sort(names,{s1,s2 in return s1>s2 })
  • 17.
    Implicit Returns // ํด๋กœ์ ธ๋ฅผ์ด๋ฃจ๋Š” ๊ตฌ์„ฑ์š”์†Œ = ํ•จ์ˆ˜ + ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™˜๊ฒฝ // myFunc์ด๋ผ๋Š” ํด๋กœ์ ธ๋Š” displayName์ด๋ผ๋Š” ํ•จ์ˆ˜์™€, name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. let names = ["cody","zed","jimmy","allen"] var sorted = sort(names,{s1,s2 in s1>s2 })
  • 18.
    Shorthand Argument Names //ํด๋กœ์ ธ๋ฅผ ์ด๋ฃจ๋Š” ๊ตฌ์„ฑ์š”์†Œ = ํ•จ์ˆ˜ + ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™˜๊ฒฝ // myFunc์ด๋ผ๋Š” ํด๋กœ์ ธ๋Š” displayName์ด๋ผ๋Š” ํ•จ์ˆ˜์™€, name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. let names = ["cody","zed","jimmy","allen"] var sorted = sort(names,{$0>$1})
  • 19.
    Operator Functions // ํด๋กœ์ ธ๋ฅผ์ด๋ฃจ๋Š” ๊ตฌ์„ฑ์š”์†Œ = ํ•จ์ˆ˜ + ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ํ™˜๊ฒฝ // myFunc์ด๋ผ๋Š” ํด๋กœ์ ธ๋Š” displayName์ด๋ผ๋Š” ํ•จ์ˆ˜์™€, name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค. let names = ["cody","zed","jimmy","allen"] var sorted = sort(names,>)
  • 20.
    Enumeration Syntax enum StudyPerson{ Kimin, GwangHo, Cody, }
  • 21.
    Enumeration Syntax enum StudyPerson{ case Kimin case GwangHo case Cody }
  • 22.
    Enumeration Syntax enum StudyPerson{ case Kimin, GwangHo, Cody }
  • 23.
    Enumeration Syntax enum StudyPerson{ case Kimin, GwangHo, Cody } var enumValue = StudyPerson.Kimin enumValue = StudyPerson.GwangHo enumValue = .Cody
  • 24.
    Enumeration Syntax var enumValue= Study.Kimin switch enumValue { case Kimin: // blah blah case GwangHo: // blah blah case Cody: // blah blah }
  • 25.
    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 right case .EyeSight(let left, let right): println("์ œ ์‹œ๋ ฅ์€ (left):(right) ์ž…๋‹ˆ๋‹ค.") default: "defulat case๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค." }
  • 26.