пятница, 5 июня 2020 г.

Swift, Basics

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)
}

Комментариев нет:

Отправить комментарий