From 4939722c799f9afa0d3a56541624f4546cdad457 Mon Sep 17 00:00:00 2001 From: Alexander Kravchenko Date: Thu, 25 May 2017 16:00:49 +0300 Subject: [PATCH 1/3] Swift3 samples --- Swift/1-for.swift | 3 +++ Swift/2-while.swift | 6 ++++++ Swift/3-do-while.swift | 6 ++++++ Swift/4-for-in.swift | 7 +++++++ Swift/5-for-of.swift | 4 ++++ Swift/6-break.swift | 9 +++++++++ Swift/7-continue.swift | 9 +++++++++ Swift/8-forEach.swift | 13 +++++++++++++ Swift/9-map.swift | 9 +++++++++ 9 files changed, 66 insertions(+) create mode 100644 Swift/1-for.swift create mode 100644 Swift/2-while.swift create mode 100644 Swift/3-do-while.swift create mode 100644 Swift/4-for-in.swift create mode 100644 Swift/5-for-of.swift create mode 100644 Swift/6-break.swift create mode 100644 Swift/7-continue.swift create mode 100644 Swift/8-forEach.swift create mode 100644 Swift/9-map.swift diff --git a/Swift/1-for.swift b/Swift/1-for.swift new file mode 100644 index 0000000..6d17231 --- /dev/null +++ b/Swift/1-for.swift @@ -0,0 +1,3 @@ +for i in stride(from: 0, to: 10, by: 1) { + print(i) +} diff --git a/Swift/2-while.swift b/Swift/2-while.swift new file mode 100644 index 0000000..914ca40 --- /dev/null +++ b/Swift/2-while.swift @@ -0,0 +1,6 @@ +var a = 0 +while (a < 10) { + // Postfix/Prefix func has been removed in Swift 3 + a += 1 + print(a) +} diff --git a/Swift/3-do-while.swift b/Swift/3-do-while.swift new file mode 100644 index 0000000..24809c8 --- /dev/null +++ b/Swift/3-do-while.swift @@ -0,0 +1,6 @@ +var i = 0 +// Do-While has been removed. Repeat-While instead. +repeat { + i += 1 + print(i) +} while(i < 10) diff --git a/Swift/4-for-in.swift b/Swift/4-for-in.swift new file mode 100644 index 0000000..150c7cf --- /dev/null +++ b/Swift/4-for-in.swift @@ -0,0 +1,7 @@ +let arr = [7, 10, 1, 5, 2] + +for i in arr.enumerated() { + let value = arr[i.offset] + // Now value is same to i.element + print(i.offset, value, i.element) +} diff --git a/Swift/5-for-of.swift b/Swift/5-for-of.swift new file mode 100644 index 0000000..c78f1e7 --- /dev/null +++ b/Swift/5-for-of.swift @@ -0,0 +1,4 @@ +let arr = [7, 10, 1, 5, 2] +for i in arr { + print(i) // 7, 10, 1, 5, 2 +} diff --git a/Swift/6-break.swift b/Swift/6-break.swift new file mode 100644 index 0000000..918bd7c --- /dev/null +++ b/Swift/6-break.swift @@ -0,0 +1,9 @@ +let flag = true + +print("Hello") + +while (!flag) { + print("World") +} + +print("There") diff --git a/Swift/7-continue.swift b/Swift/7-continue.swift new file mode 100644 index 0000000..0586bad --- /dev/null +++ b/Swift/7-continue.swift @@ -0,0 +1,9 @@ +var i = 0 +while (i < 10) { + i += 1 + print("Hello") + if i == 5 { + continue + } + print("World") +} diff --git a/Swift/8-forEach.swift b/Swift/8-forEach.swift new file mode 100644 index 0000000..eb90f17 --- /dev/null +++ b/Swift/8-forEach.swift @@ -0,0 +1,13 @@ +let a = [7, 10, 1, 5, 2] + +a.forEach { x in + print (x) // 7,10,1,5,2 +} + +a.forEach { + print($0) // 7,10,1,5,2 +} + +[7,10,1,5].forEach { + print($0) // 7,10,1,5 +} diff --git a/Swift/9-map.swift b/Swift/9-map.swift new file mode 100644 index 0000000..11b09e1 --- /dev/null +++ b/Swift/9-map.swift @@ -0,0 +1,9 @@ +let a = [7, 10, 1, 5, 2] + +a.map { + $0 * 2 // [14, 20, 2, 10, 4] +} + +a.map { x in + x * 2 // [14, 20, 2, 10, 4] +} From b4c8b27da44f2149b1d705d73ace0db9caa07166 Mon Sep 17 00:00:00 2001 From: Alexander Kravchenko Date: Thu, 25 May 2017 17:23:01 +0300 Subject: [PATCH 2/3] fix #6 --- Swift/6-break.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Swift/6-break.swift b/Swift/6-break.swift index 918bd7c..79c4209 100644 --- a/Swift/6-break.swift +++ b/Swift/6-break.swift @@ -1,8 +1,8 @@ let flag = true -print("Hello") - -while (!flag) { +while (true) { + print("Hello") + if flag { break } print("World") } From 0db047febf3e7dfc2ccf4cb1b942199dcfe84bff Mon Sep 17 00:00:00 2001 From: Alexander Kravchenko Date: Fri, 2 Jun 2017 15:00:57 +0300 Subject: [PATCH 3/3] Playground mode --- Swift/1-for.swift | 3 --- Swift/2-while.swift | 6 ------ Swift/3-do-while.swift | 6 ------ Swift/4-for-in.swift | 7 ------- Swift/5-for-of.swift | 4 ---- Swift/8-forEach.swift | 13 ------------- Swift/9-map.swift | 9 --------- .../Break.xcplaygroundpage/Contents.swift} | 5 +++++ .../Continue.xcplaygroundpage/Contents.swift} | 8 +++++--- .../Contents.swift | 11 +++++++++++ .../for-in.xcplaygroundpage/Contents.swift | 8 ++++++++ .../Pages/for.xcplaygroundpage/Contents.swift | 8 ++++++++ .../forEach.xcplaygroundpage/Contents.swift | 18 ++++++++++++++++++ .../Pages/map.xcplaygroundpage/Contents.swift | 11 +++++++++++ .../Contents.swift | 11 +++++++++++ .../while.xcplaygroundpage/Contents.swift | 10 ++++++++++ .../contents.xcplayground | 14 ++++++++++++++ .../contents.xcworkspacedata | 7 +++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 12495 bytes 19 files changed, 108 insertions(+), 51 deletions(-) delete mode 100644 Swift/1-for.swift delete mode 100644 Swift/2-while.swift delete mode 100644 Swift/3-do-while.swift delete mode 100644 Swift/4-for-in.swift delete mode 100644 Swift/5-for-of.swift delete mode 100644 Swift/8-forEach.swift delete mode 100644 Swift/9-map.swift rename Swift/{6-break.swift => Iteration.playground/Pages/Break.xcplaygroundpage/Contents.swift} (69%) rename Swift/{7-continue.swift => Iteration.playground/Pages/Continue.xcplaygroundpage/Contents.swift} (51%) create mode 100644 Swift/Iteration.playground/Pages/enumerated.xcplaygroundpage/Contents.swift create mode 100644 Swift/Iteration.playground/Pages/for-in.xcplaygroundpage/Contents.swift create mode 100644 Swift/Iteration.playground/Pages/for.xcplaygroundpage/Contents.swift create mode 100644 Swift/Iteration.playground/Pages/forEach.xcplaygroundpage/Contents.swift create mode 100644 Swift/Iteration.playground/Pages/map.xcplaygroundpage/Contents.swift create mode 100644 Swift/Iteration.playground/Pages/repeat-while.xcplaygroundpage/Contents.swift create mode 100644 Swift/Iteration.playground/Pages/while.xcplaygroundpage/Contents.swift create mode 100644 Swift/Iteration.playground/contents.xcplayground create mode 100644 Swift/Iteration.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 Swift/Iteration.playground/playground.xcworkspace/xcuserdata/Askrav.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/Swift/1-for.swift b/Swift/1-for.swift deleted file mode 100644 index 6d17231..0000000 --- a/Swift/1-for.swift +++ /dev/null @@ -1,3 +0,0 @@ -for i in stride(from: 0, to: 10, by: 1) { - print(i) -} diff --git a/Swift/2-while.swift b/Swift/2-while.swift deleted file mode 100644 index 914ca40..0000000 --- a/Swift/2-while.swift +++ /dev/null @@ -1,6 +0,0 @@ -var a = 0 -while (a < 10) { - // Postfix/Prefix func has been removed in Swift 3 - a += 1 - print(a) -} diff --git a/Swift/3-do-while.swift b/Swift/3-do-while.swift deleted file mode 100644 index 24809c8..0000000 --- a/Swift/3-do-while.swift +++ /dev/null @@ -1,6 +0,0 @@ -var i = 0 -// Do-While has been removed. Repeat-While instead. -repeat { - i += 1 - print(i) -} while(i < 10) diff --git a/Swift/4-for-in.swift b/Swift/4-for-in.swift deleted file mode 100644 index 150c7cf..0000000 --- a/Swift/4-for-in.swift +++ /dev/null @@ -1,7 +0,0 @@ -let arr = [7, 10, 1, 5, 2] - -for i in arr.enumerated() { - let value = arr[i.offset] - // Now value is same to i.element - print(i.offset, value, i.element) -} diff --git a/Swift/5-for-of.swift b/Swift/5-for-of.swift deleted file mode 100644 index c78f1e7..0000000 --- a/Swift/5-for-of.swift +++ /dev/null @@ -1,4 +0,0 @@ -let arr = [7, 10, 1, 5, 2] -for i in arr { - print(i) // 7, 10, 1, 5, 2 -} diff --git a/Swift/8-forEach.swift b/Swift/8-forEach.swift deleted file mode 100644 index eb90f17..0000000 --- a/Swift/8-forEach.swift +++ /dev/null @@ -1,13 +0,0 @@ -let a = [7, 10, 1, 5, 2] - -a.forEach { x in - print (x) // 7,10,1,5,2 -} - -a.forEach { - print($0) // 7,10,1,5,2 -} - -[7,10,1,5].forEach { - print($0) // 7,10,1,5 -} diff --git a/Swift/9-map.swift b/Swift/9-map.swift deleted file mode 100644 index 11b09e1..0000000 --- a/Swift/9-map.swift +++ /dev/null @@ -1,9 +0,0 @@ -let a = [7, 10, 1, 5, 2] - -a.map { - $0 * 2 // [14, 20, 2, 10, 4] -} - -a.map { x in - x * 2 // [14, 20, 2, 10, 4] -} diff --git a/Swift/6-break.swift b/Swift/Iteration.playground/Pages/Break.xcplaygroundpage/Contents.swift similarity index 69% rename from Swift/6-break.swift rename to Swift/Iteration.playground/Pages/Break.xcplaygroundpage/Contents.swift index 79c4209..b3899b2 100644 --- a/Swift/6-break.swift +++ b/Swift/Iteration.playground/Pages/Break.xcplaygroundpage/Contents.swift @@ -1,3 +1,5 @@ +//: [For-in](@previous) + let flag = true while (true) { @@ -7,3 +9,6 @@ while (true) { } print("There") + + +//: [Continue](@next) diff --git a/Swift/7-continue.swift b/Swift/Iteration.playground/Pages/Continue.xcplaygroundpage/Contents.swift similarity index 51% rename from Swift/7-continue.swift rename to Swift/Iteration.playground/Pages/Continue.xcplaygroundpage/Contents.swift index 0586bad..e06d8ed 100644 --- a/Swift/7-continue.swift +++ b/Swift/Iteration.playground/Pages/Continue.xcplaygroundpage/Contents.swift @@ -1,9 +1,11 @@ +//: [Break](@previous) + var i = 0 while (i < 10) { i += 1 print("Hello") - if i == 5 { - continue - } + if i == 5 { continue } print("World") } + +//: [forEach](@next) diff --git a/Swift/Iteration.playground/Pages/enumerated.xcplaygroundpage/Contents.swift b/Swift/Iteration.playground/Pages/enumerated.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..f0da4b8 --- /dev/null +++ b/Swift/Iteration.playground/Pages/enumerated.xcplaygroundpage/Contents.swift @@ -0,0 +1,11 @@ +//: [Repeat-While](@previous) + +//: offset - index of element +let arr = [7, 10, 1, 5, 2] + +for i in arr.enumerated() { + print(i.offset, i.element) +} + + +//: [For-in](@next) diff --git a/Swift/Iteration.playground/Pages/for-in.xcplaygroundpage/Contents.swift b/Swift/Iteration.playground/Pages/for-in.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..4f359b8 --- /dev/null +++ b/Swift/Iteration.playground/Pages/for-in.xcplaygroundpage/Contents.swift @@ -0,0 +1,8 @@ +//: [Enumerated](@previous) + +let arr = [7, 10, 1, 5, 2] +for i in arr { + print(i) +} + +//: [Break](@next) diff --git a/Swift/Iteration.playground/Pages/for.xcplaygroundpage/Contents.swift b/Swift/Iteration.playground/Pages/for.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..404f194 --- /dev/null +++ b/Swift/Iteration.playground/Pages/for.xcplaygroundpage/Contents.swift @@ -0,0 +1,8 @@ +//: stride(from:to:by:) iterating over collection. C-style loop has been removed +for i in stride(from: 0, to: 10, by: 1) { + print(i) +} + + + +//: [While](@next) diff --git a/Swift/Iteration.playground/Pages/forEach.xcplaygroundpage/Contents.swift b/Swift/Iteration.playground/Pages/forEach.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..741e3e8 --- /dev/null +++ b/Swift/Iteration.playground/Pages/forEach.xcplaygroundpage/Contents.swift @@ -0,0 +1,18 @@ +//: [Continue](@previous) + +let a = [7, 10, 1, 5, 2] + +a.forEach { x in + print (x) +} + +a.forEach { + print($0) +} + +[7,10,1,5].forEach { + print($0) +} + + +//: [Map](@next) diff --git a/Swift/Iteration.playground/Pages/map.xcplaygroundpage/Contents.swift b/Swift/Iteration.playground/Pages/map.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..ac91aaf --- /dev/null +++ b/Swift/Iteration.playground/Pages/map.xcplaygroundpage/Contents.swift @@ -0,0 +1,11 @@ +//: [ForEach](@previous) + +let a = [7, 10, 1, 5, 2] + +a.map { + $0 * 2 +} + +a.map { x in + x * 2 +} diff --git a/Swift/Iteration.playground/Pages/repeat-while.xcplaygroundpage/Contents.swift b/Swift/Iteration.playground/Pages/repeat-while.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..ce954e0 --- /dev/null +++ b/Swift/Iteration.playground/Pages/repeat-while.xcplaygroundpage/Contents.swift @@ -0,0 +1,11 @@ +//: [While](@previous) + +//: Note: Do-While has been removed. Repeat-While instead. +var i = 0 +repeat { + i += 1 + print(i) +} while(i < 10) + + +//: [Enumerated](@next) diff --git a/Swift/Iteration.playground/Pages/while.xcplaygroundpage/Contents.swift b/Swift/Iteration.playground/Pages/while.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..8abe011 --- /dev/null +++ b/Swift/Iteration.playground/Pages/while.xcplaygroundpage/Contents.swift @@ -0,0 +1,10 @@ +//: [For](@previous) +var a = 0 +while (a < 10) { + a += 1 + print(a) +} +//: [Repeat-While](@next) + + + diff --git a/Swift/Iteration.playground/contents.xcplayground b/Swift/Iteration.playground/contents.xcplayground new file mode 100644 index 0000000..824ec47 --- /dev/null +++ b/Swift/Iteration.playground/contents.xcplayground @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Swift/Iteration.playground/playground.xcworkspace/contents.xcworkspacedata b/Swift/Iteration.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Swift/Iteration.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Swift/Iteration.playground/playground.xcworkspace/xcuserdata/Askrav.xcuserdatad/UserInterfaceState.xcuserstate b/Swift/Iteration.playground/playground.xcworkspace/xcuserdata/Askrav.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..5370cb21032c5691733eacba05161ba702959f3b GIT binary patch literal 12495 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 O{fKnJtN*`k=KlZ=oSjbq literal 0 HcmV?d00001