头文件

1
2
3
//: Playground - noun: a place where people can play
import UIKit
//setting value

初始化

变量

1
2
3
var str = "Hello, playground"
var userAge:Int = 30
var userAgeInDays:Int = userAge * 365

常量

1
2
3
4
5
6
7
8
9
10
let introduced: Int = 2014
let isAwesome: Bool = true
//===可以直接定义,自动适配变量类型===
//let languageName = "Swift"
//var version = 1.0
//let introduced = 2015
//let isAwesome = true
//let π = 3.1415927
//let 中文 = "Chinese"
//let 🐮 = "cow"

运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var dogInt:UInt32=0x1F436
var chInt:UInt32=0x1F425
var heartInt:UInt32=0x2665
var dollarInt:UInt32=0x0024
var pinkInt:UInt32=0x1F496
let dog = UnicodeScalar(dogInt)?.escaped(asASCII: false)
let chicken = UnicodeScalar(chInt)?.escaped(asASCII: false)
let dollar = UnicodeScalar(dollarInt)?.escaped(asASCII: false)
let heart = UnicodeScalar(heartInt)?.escaped(asASCII: false)
let pink = UnicodeScalar(pinkInt)?.escaped(asASCII: false)
let someString = "I apper to be a string" //inferred to be of type String
//urlRequest.HTTPMethor = "POST"
let components = "~/Documents/Swift".components(separatedBy: "/") //["~", "Documents", "Swift"]
for character in "🐶🐱🐭🐹".characters {
print("\(character)")
}
let dog2 = "🐶"
let cow2 = "🐮"
var dogCow = dog2+cow2
//math operation
let a = 3, b = 5
let mathResult = "\(a) time \(b) is \(a*b)"
var varibleString = "Horse"
varibleString += " and carriage"
let constantString = "Highlander"

数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var name = ["Anna", "Alex", "Brian", "Jack"]
for now in name {
print("Hello, \(now)")
}
//change the array
var shoppingList = ["Eggs", "Milk"]
print(shoppingList[0])
shoppingList.append("Flour")
shoppingList += ["Cheese", "Butter", "Chocolate Spread"]
shoppingList[0] = "Six Eggs"
print(shoppingList)
shoppingList[2...4] = ["Bananas", "Apples"]
print(shoppingList)

字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var numberOfLegs = ["ant": 6, "snake": 0, "cheetah": 4]
numberOfLegs["spider"] = 273
// for in map style
for (animalName, legCount) in numberOfLegs {
print("\(animalName)s have \(legCount) legs")
}
//numberOfLegs["arrdvark"] = 101
print(numberOfLegs)
// if not found in map set
let possibleLegCount:Int? = numberOfLegs["arrdvark"]
if possibleLegCount == nil{
print("Aardvark wasn't found")
}else{
let intcont:Int = possibleLegCount!
print("arrdvark is \(intcont)")
}
if let legcount = possibleLegCount{
print("arrdvark has \(legcount) legs")
}

函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//无返回值的函数
func sayhello(name:String = "Beyond"){
print("hello \(name)")
}
sayhello()
sayhello(name:"Bob")
//有返回值的函数
func buildgreeting(name:String = "Beyond")->String{
return "Hi"+name
}
print(buildgreeting())
print(buildgreeting(name:"Leaon"))
func doublereturn() -> (code:Int,message:String){
// do sth here
return (200,"Success")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
func wholename (_num:Int) -> (firstname:String,lastname:String){
let fn=["Loli","Tenk","Jon","Peeck","Beyond"]
let ln=["Sccot","Alice","Jonny","Freank","Leon"]
return (fn[_num],ln[_num])
}
let allname=wholename(_num: 2)
print("number 2 's name is \(allname.firstname) \(allname.1)")
let setFree={print("zhangbinbin最衰")}
setFree
//可变熟练的参数输入
func sumOf(numbers:Double...) -> (Double){
var sum=0.0
for number in numbers{
sum += number
}
return sum/Double(numbers.count)
}
print("the sum is \(sumOf(numbers: 1,2,5,5,66))")

循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// for statement
for i in 0..<5 {
print(i)
}
var ti = 1
while ti < 100 {
print("ti is \( ti)")
ti = ti + ti;
}
ti = 1
repeat{
print("ti is \(ti)" )
ti = ti * 3
}while ti < 10

选择

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var sender:Int = 1
switch sender{
case 1,2,3,4,5:
print("sender is 1,2,3,4,5")
case 99:
print("sender is 99")
default:
print("W T F")
}
let life = ["cat":"animal","dog":"animal","flower":"plant","tree":"plant","tiger":"animal","cucomber":"plant"]
let wlife = life["tiger"]
switch wlife{
case "animal"?:
print("this life is animal")
case "plant"?:
print("this life is plant")
default:
print("this is alien")
}

闭包

1
2
3
4
5
6
7
8
9
10
11
12
//Closures is a peices of programe
let greetingPrinter:()->()={
print("this is a closures")
}
greetingPrinter
//Closures as parameter
func repeating(count:Int,task:()->()){
for i in 0...count{
task()
}
}
repeating(count:3,task:greetingPrinter)