Swift随便写写
常量:let声明常量 例子:let string:String = "helloWorld"
变量:var声明变量 例子:var string:String = "helloWorld"
声明常量或者变量的时候可以加上类型标注;但是swift可以根据声明时的初始值推断出这个常量或者变量的类型,所以一般可以不写类型标注。
可选类型:如果一个值可能有值也有可能为nil,那么这个变量就是一个可选类型,可选类型用?标识;
注:可选类型不能直接参与运算,参与运算之前必须强制解包,强制解包用!标识;解包后若为nil参与运算可能会导致程序崩溃,需要对解包的变量进行判断。
一、Simple Values
字符串的创建: let string = "helloWorld"
数组的创建: let array:[String] = ["123", "234"] 或者 let array = String
字典的创建: let dic:[String:AnyObject] = ["key1":"value1", "key2":"value2"] 或者 let dic = String:AnyObject
二、Control Flow
- if判断:
let score = 80
if score > 60 {
print ("及格,分数为\(score)")
} else {
print ("不及格,分数为\(score)")
}
- if let 判断(用于可选变量?的判读)
var a:Int? = 10
if let b = a {
print("b = \(b)")
}
先判断可选类型是否为空,不为空的话创建一个局部常量或者变量接收可选类型的值,在执行代码块,否则不执行代码块。(可以写else)
var a:Int? = 10
if let c = a where c > 5 {
print("a > 5")
}
where可以增加判断需求
- guard 判断
var a:Int? = 10
guard let d = a else {
print("a = nil")
return
}
print("d = \(d)")
同样是判断可选类型是否为空,若为空则执行代码块后跳出函数,否则可以继续向下执行。
- switch 函数
let a = 10
switch a {
case 2:
print("a = 2")
case 3:
print("a = 3")
case 10:
print("a = 10")
default: break
}
switch中case的break可以不写,默认的default在没有完全判定变量的所有情况时必须添加;另外,case后面的执行语句{}省略不写。
- for 循环
for var i = 0; i < 10; i++ {
print(i)
}
- for-in 循环
for i in 0...10 { //[0,10]
print(i)
}
for i in 0..<10 { //[0,10)
print(i)
}
- while 循环
var i = 10
while i > 1 {
print(i)
i--
}
- repeat-while 循环
var i = 10
repeat {
print(i)
i--
} while i > 5
三、Functions And Closures
若函数想要成为类函数只需在func前面加上class,若想要函数为本类的私有函数则在func前面加上private,若继承于父类的函数则在func前面加上override
- 函数:无参无返
func demo()
print("无参无返回值")
}
- 函数:有参无返
func lengthOfString(str1:String, str2:String) {
print("\(str1.characters.count) 和 \(str2.characters.count)")
}
- 函数:无参有返
func demo04() -> String {
return "helloWorld"
}
- 函数:有参有返
func demo(str1:String, str2:String) -> String {
var str3 = str1
str3 += str2
return str3
}
- 闭包:无参无返
let closure = {
()->()
in
print("这是一个无参无返的闭包")
}
- 闭包:无参有返
let closure2 = {
() -> Int in
let str = "helloWorld
return str.characters.count
}
- 闭包:有参无返
let closure1 = {
(str:String) -> () in
print("这是一个有参无返的闭包\(str)")
}
- 闭包:有参有返
let closure3 = {
(str:String) -> String in
return str
}