Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 59 additions & 61 deletions Chapter2/Session2.playground/Contents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ let name:String = "Seongkwan"
var greeting = "Hello"
greeting += " " + name

let characters = name.characters
let count = characters.count
let count = name.count

let url = "www.codershigh.com"
let hasProtocol:Bool = url.hasPrefix("http://")
Expand Down Expand Up @@ -94,7 +93,7 @@ roomCapacity["Kahlo"]
let roomNames = [String](roomCapacity.keys)
let capacities = [Int](roomCapacity.values)

let total = capacities.reduce(0, combine: +)
let total = capacities.reduce(0, +)

//: Session 2-6 컬렉션2 Set
let subway2 :Set = ["시청", "을지로입구", "을지로3가", "을지로4가","동대문역사문화공원", "신당", "상왕십리", "왕십리", "한양대", "뚝섬", "성수", "건대입구", "구의", "강변", "잠실나루", "잠실", "신천", "종합운동장", "삼성", "선릉", "역삼", "강남", "교대", "서초", "방배", "사당", "낙성대", "서울대입구", "봉천", "신림", "신대방", "구로디지털단지", "대림", "신도림", "문래", "영등포구청", "당산", "합정", "홍대입구", "신촌", "이대", "아현", "충정로"]
Expand All @@ -103,14 +102,14 @@ subway2.count
let subway3 :Set = ["지축", "구파발", "연신내", "불광", "녹번", "홍제", "무악재", "독립문", "경복궁", "안국", "종로3가", "을지로3가", "충무로", "동대입구", "약수", "금호", "옥수", "압구정", "신사", "잠원", "고속터미널", "교대", "남부터미널", "양재", "매봉", "도곡", "대치", "학여울", "대청", "일원", "수서", "가락시장", "경찰병원", "오금"]
subway3.count

let transfer = subway2.intersect(subway3)
let transfer = subway2.intersection(subway3)
transfer.count
let notTransfer = subway2.subtract(subway3)
let notTransfer = subway2.subtracting(subway3)
notTransfer.count

let union = subway2.union(subway3)
union.count
let exOR = subway2.exclusiveOr(subway3)
let exOR = subway2.symmetricDifference(subway3)
exOR.count

if transfer.count > 0 {
Expand Down Expand Up @@ -206,7 +205,7 @@ func ratingRecord (history:[Double]) -> (average:Double, min:Double, max:Double)
ratings = [3.5, 2.0, 4.5, 5.0]
bookDescription = "\(title)"

if let theRatings = ratings , record = ratingRecord(theRatings) {
if let theRatings = ratings , let record = ratingRecord(history: theRatings) {
bookDescription += " has \(theRatings.count) ratings, \r\n average is \(record.average), from \(record.min) to \(record.max)"
} else {
bookDescription += " has no ratings yet"
Expand All @@ -216,48 +215,48 @@ if let theRatings = ratings , record = ratingRecord(theRatings) {
bookDescription

/*
1. record의 Type을 명시하시오
2. ratings = [] 일때 문제 해결 방식 고민
*/
1. record의 Type을 명시하시오
2. ratings = [] 일때 문제 해결 방식 고민
*/
//: Session 2-12 Structure

_={

struct Task {
var title:String//?
var time:Int?
}

var callTask = Task(title: "Call to Randy", time: 10*60)
//var reportTask = Task()
var reportTask = Task(title:"Report to Boss", time: nil)

var todayTask:[Task] = []
todayTask += [callTask, reportTask]
todayTask[1].time = 15*60

callTask.title = "Call to Toby"
print("today task = \(todayTask) \r\n callTask = \(callTask)")
struct Task {
var title:String//?
var time:Int?
}
var callTask = Task(title: "Call to Randy", time: 10*60)
//var reportTask = Task()
let reportTask = Task(title:"Report to Boss", time: nil)
var todayTask:[Task] = []
todayTask += [callTask, reportTask]
todayTask[1].time = 15*60
callTask.title = "Call to Toby"
print("today task = \(todayTask) \r\n callTask = \(callTask)")

}

//: Session 2-13 Class
_={

class Employee {
var name:String?
var phoneNumber:String?
var boss:Employee?
}

struct Task {
var title:String
var time:Int?
class Employee {
var name:String?
var phoneNumber:String?
var boss:Employee?
}

struct Task {
var title:String
var time:Int?

var owner:Employee
var participant:Employee?
}

var owner:Employee
var participant:Employee?
}

let me:Employee = Employee()
me.name = "Alex"
me.phoneNumber = "010-1234-5678"
Expand All @@ -266,8 +265,8 @@ struct Task {
toby.name = "Toby"
toby.phoneNumber = "011-5678-1234"

var callTask = Task(title: "Call to Toby", time: 10*60, owner:me, participant:toby)
var reportTask = Task(title:"Report to Boss", time: nil, owner:me, participant:nil)
let callTask = Task(title: "Call to Toby", time: 10*60, owner:me, participant:toby)
let reportTask = Task(title:"Report to Boss", time: nil, owner:me, participant:nil)
callTask.participant?.phoneNumber = "010-5678-1234"

var todayTask:[Task] = []
Expand Down Expand Up @@ -327,8 +326,8 @@ _={
toby.name = "Toby"
toby.phoneNumber = "011-5678-1234"

var callTask = Task(title: "Call to Toby", time: 10*60, owner:me, participant:toby, type:.Call)
var reportTask = Task(title:"Report to Boss", time: nil, owner:me, participant:nil, type:Task.TaskType.Report)
let callTask = Task(title: "Call to Toby", time: 10*60, owner:me, participant:toby, type:.Call)
let reportTask = Task(title:"Report to Boss", time: nil, owner:me, participant:nil, type:Task.TaskType.Report)

callTask.participant?.phoneNumber = "010-5678-1234"

Expand Down Expand Up @@ -404,7 +403,7 @@ _={

var callTask = Task(type:.Call, owner:me)
callTask.time = 10*60
var reportTask = Task(type:.Report, owner:me)
let reportTask = Task(type:.Report, owner:me)

callTask.participant?.phoneNumber = "010-5678-1234"

Expand All @@ -431,15 +430,15 @@ _={

func report() {
if let myBoss = boss {
print("\(self.name) reported to \(myBoss.name)")
print("\(String(describing: self.name)) reported to \(String(describing: myBoss.name))")
} else {
print("\(name) don't have boss")
print("\(String(describing: name)) don't have boss")
}
}

func callTaskToBoss() -> Task? {
if let myBoss = boss, callTo = myBoss.phoneNumber {
var callTask = Task(type: .Call, owner: self)
if let myBoss = boss, let _ = myBoss.phoneNumber {
let callTask = Task(type: .Call, owner: self)
return callTask
}
return nil
Expand Down Expand Up @@ -498,9 +497,9 @@ _={
me.boss = toby
me.report()

var reportTask = Task(type:.Report, owner:me)
let reportTask = Task(type:.Report, owner:me)
todayTask += [reportTask]

if let callTask = me.callTaskToBoss() {
todayTask += [callTask]
}
Expand Down Expand Up @@ -532,15 +531,15 @@ _={

func report() {
if let myBoss = boss {
print("\(self.name) reported to \(myBoss.name)")
print("\(String(describing: self.name)) reported to \(String(describing: myBoss.name))")
} else {
print("\(name) don't have boss")
print("\(String(describing: name)) don't have boss")
}
}

func callTaskToBoss() -> Task? {
if let myBoss = boss, callTo = myBoss.phoneNumber {
var callTask = Task(type: .Call(number:callTo), owner: self)
if let myBoss = boss, let callTo = myBoss.phoneNumber {
let callTask = Task(type: .Call(number:callTo), owner: self)
return callTask
}
return nil
Expand Down Expand Up @@ -592,15 +591,13 @@ _={
let taskDescription:String
switch type {
case .Call(let number) :
taskDescription = "\(owner.name) make a call to \(number)"
taskDescription = "\(String(describing: owner.name)) make a call to \(number)"
case .Report(let receiver, let time) :
taskDescription = "\(owner.name) report to \(receiver.name) at \(time)"
taskDescription = "\(String(describing: owner.name)) report to \(String(describing: receiver.name)) at \(time)"
case .Meet(let participant, let location) :
taskDescription = "\(owner.name) meet \(participant.name) at \(location)"
taskDescription = "\(String(describing: owner.name)) meet \(String(describing: participant.name)) at \(location)"
case .Support(let taskOwner, let duration) :
taskDescription = "\(owner.name) support \(taskOwner.name) for \(duration) days"
default:
taskDescription = "Need more information for task."
taskDescription = "\(String(describing: owner.name)) support \(String(describing: taskOwner.name)) for \(duration) days"
}
return taskDescription
}
Expand All @@ -616,7 +613,7 @@ _={
me.boss = toby
me.report()

var reportTask = Task(type:.Report(to:toby, when:"Afternoon"), owner:me)
let reportTask = Task(type:.Report(to:toby, when:"Afternoon"), owner:me)
todayTask += [reportTask]

if let callTask = me.callTaskToBoss() {
Expand All @@ -627,3 +624,4 @@ _={
reportTask.doBasicTask()
}


Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions Chapter2/Session2.playground/timeline.xctimeline
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,39 @@
version = "3.0">
<TimelineItems>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=27&amp;CharacterRangeLoc=3613&amp;EndingColumnNumber=32&amp;EndingLineNumber=147&amp;StartingColumnNumber=5&amp;StartingLineNumber=147&amp;Timestamp=475640660.927744"
documentLocation = "file:///Users/rubis/Documents/iOS-Swift-Basics_helloworld/Chapter2/Session2.playground#CharacterRangeLen=16308&amp;CharacterRangeLoc=0&amp;EndingColumnNumber=0&amp;EndingLineNumber=627&amp;StartingColumnNumber=0&amp;StartingLineNumber=0&amp;Timestamp=531656075.102071"
lockedSize = "{854, 155}"
selectedRepresentationIndex = "1"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=27&amp;CharacterRangeLoc=4177&amp;EndingColumnNumber=28&amp;EndingLineNumber=171&amp;StartingColumnNumber=1&amp;StartingLineNumber=171&amp;Timestamp=475640757.418873"
documentLocation = "file:///Users/rubis/Documents/iOS-Swift-Basics_helloworld/Chapter2/Session2.playground#CharacterRangeLen=16308&amp;CharacterRangeLoc=0&amp;EndingColumnNumber=0&amp;EndingLineNumber=627&amp;StartingColumnNumber=0&amp;StartingLineNumber=0&amp;Timestamp=531656075.102294"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=15&amp;CharacterRangeLoc=5347&amp;EndingColumnNumber=16&amp;EndingLineNumber=220&amp;StartingColumnNumber=1&amp;StartingLineNumber=220&amp;Timestamp=475651555.904134"
documentLocation = "file:///Users/rubis/Documents/iOS-Swift-Basics_helloworld/Chapter2/Session2.playground#CharacterRangeLen=16308&amp;CharacterRangeLoc=0&amp;EndingColumnNumber=0&amp;EndingLineNumber=627&amp;StartingColumnNumber=0&amp;StartingLineNumber=0&amp;Timestamp=531656075.102456"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=62&amp;CharacterRangeLoc=6175&amp;EndingColumnNumber=63&amp;EndingLineNumber=241&amp;StartingColumnNumber=1&amp;StartingLineNumber=241&amp;Timestamp=475651555.904352"
documentLocation = "file:///Users/rubis/Documents/iOS-Swift-Basics_helloworld/Chapter2/Session2.playground#CharacterRangeLen=16308&amp;CharacterRangeLoc=0&amp;EndingColumnNumber=0&amp;EndingLineNumber=627&amp;StartingColumnNumber=0&amp;StartingLineNumber=0&amp;Timestamp=531656075.102625"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=27&amp;CharacterRangeLoc=3940&amp;EndingColumnNumber=28&amp;EndingLineNumber=161&amp;StartingColumnNumber=1&amp;StartingLineNumber=161&amp;Timestamp=475640757.419412"
documentLocation = "file:///Users/rubis/Documents/iOS-Swift-Basics_helloworld/Chapter2/Session2.playground#CharacterRangeLen=16308&amp;CharacterRangeLoc=0&amp;EndingColumnNumber=0&amp;EndingLineNumber=627&amp;StartingColumnNumber=0&amp;StartingLineNumber=0&amp;Timestamp=531656075.102764"
lockedSize = "{601, 103}"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=15&amp;CharacterRangeLoc=5008&amp;EndingColumnNumber=16&amp;EndingLineNumber=203&amp;StartingColumnNumber=1&amp;StartingLineNumber=203&amp;Timestamp=475651555.90471"
documentLocation = "file:///Users/rubis/Documents/iOS-Swift-Basics_helloworld/Chapter2/Session2.playground#CharacterRangeLen=16308&amp;CharacterRangeLoc=0&amp;EndingColumnNumber=0&amp;EndingLineNumber=627&amp;StartingColumnNumber=0&amp;StartingLineNumber=0&amp;Timestamp=531656075.102912"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=43&amp;CharacterRangeLoc=3322&amp;EndingColumnNumber=70&amp;EndingLineNumber=140&amp;StartingColumnNumber=27&amp;StartingLineNumber=140&amp;Timestamp=480579998.145287"
documentLocation = "file:///Users/rubis/Documents/iOS-Swift-Basics_helloworld/Chapter2/Session2.playground#CharacterRangeLen=16308&amp;CharacterRangeLoc=0&amp;EndingColumnNumber=0&amp;EndingLineNumber=627&amp;StartingColumnNumber=0&amp;StartingLineNumber=0&amp;Timestamp=531656075.103053"
lockedSize = "{487, 131}"
selectedRepresentationIndex = "1"
shouldTrackSuperviewWidth = "NO">
Expand Down
Loading