Online Swift Playground
//Math
import Foundation
print(sin(45 * Double.pi / 180))
print((2.0).squareRoot())
//Ranges
let closed = 0...5
let halfOpen = 0..<6
//Random
var rnd = Int.random(in: 0 ..< 6+1)
//var rnd = Int.random(in: 0 ... 6)
print(rnd)
//Variables (inferred)
var meters = 5, km = 5
var PI = 3.14
meters += 5
print("meters: ", meters - 5)
//Interpolation
print("PI: \(PI)")
//Constants
let x = 5
// x += 5 error
//Tuples
let point: (Int, Int) = (5, 5)
let vector = (5.0, 5.0)
print(point.0, point.1)
let point = (x:5, y:5)
print(point.x, point.y)
//Alias
typealias Point = (x:Int, y:Int)
let p1: Point = (x:2, y:4)
print(p1.x, p1.y)
//Deconstructing
let point3d = (x: 2, y: 3, z: 1)
let (x3d, y3d, z3d) = point3d
let (x2d, y2d, _) = point3d
print(x3d, y3d, z3d)
print(x2d, y2d)
//Operators
let y = 3 / 1
print("remainder: ", x % y)
let z = ( 2 > 1) ? true : false
//let z = max(2, 1)
print(z)
//Strings
let poem = """
Hi, I am Mike.
And you?
How are you?
"""
print(poem)
print("str1" + " " + "str2")
var greet = "Hi"
greet += "!"
print("str: \(greet)")
//Explisit types
let chr: Character = "a"
let str: String = "my_string"
let zzz: Int = 5_000_000
let dbl: Double = 3.14
let flt: Float = 0.123
var bln: Bool = !true; bln.toggle()
//Casting
let c = 5
let d = Double (c) / 2
//let d = 5 as Double / 2
//let d = 5.0 / 2.0
print(d)
let a:Character = "!"
let str = "Hi" + String(a)
print(str)
//IF-ELSE
var age = 14
var citizen = true
if age >= 18 && citizen == true {
print("Yes, you can vote!")
} else if age < 18 || citizen == false {
print("No, you cannot!")
} else {
print("Opps!")
}
//SWITCH
var grade = "B"
switch (grade) {
case "A","B":
print("Good!")
default:
break
}
var some = 2
switch (some) {
case 0..<5:
print("a few")
case 5...10:
print("a lot")
default:
break
}
//PATTERN MATCHING
var number = 2
switch number {
case let x where x % 2 == 0:
print("Even:", x)
default:
print("Odd")
}
switch number {
case _ where number % 2 == 0:
print("Even:", number)
default:
print("Odd")
}
let point = (x: 2, y: 0)
switch point {
case (0, 0):
print("origin")
case (let x, 0) where x <= 2:
print("x = \(x)")
case (0, let y):
print("y = \(y)")
case let (x, y):
print("in_space = \(x), \(y)")}
let point = (x: 2, y: 0)
switch point {
case (0, 0):
print("origin")
case (_, 0) where point.x <= 2:
print("x_axis")
case (0, _):
print("y_axis")
default:
print("in_space")
}
//WHILE
var i = 0
while (i < 10) {
i += 1
if i == 3{
continue
}
print(i)
if i == 5{
break
}
}
//DO-WHILE
var j = 10
repeat {
print(j)
j -= 1
} while (j != 0)
//FOR
for i in 1...5 {
print(i)
}
for _ in 1..<5 {
print("+")
}
for i in 1...5 where i % 2 == 0 {
print(i)
}
OUT: for row in 0...4 {
IN: for col in 0...4 {
if row == col {
continue OUT
}
print(row * col)
}
}
//Step
for i in stride(from: 0, to: 6, by: 2) {
print(i)
}
for i in stride(from: 6, through: 0, by: -2) {
print(i)
}
Комментариев нет:
Отправить комментарий