1.控制臺輸出
print("控制器輸出代碼")//print默認在后面添加\n
2.常量和變量
-
1 定義常量用 let
swift能夠自動推斷變量的類型拷恨,點擊option可以查看某饰。常量不能修改,如果需要修改用var修飾湖笨。
let b = 10 //Int
let b1 = 10.0 //Double
let b2 = "" //String
let b3 = true //Bool -
2 定義變量用 var
變量的類型放到后面。需要注意的是:兩個變量進行運算蹦骑,必須類型一致慈省。
var a: Int = 10
var a1: Float = 10
var a2: Double = 20
var a3: String = "Hello World"
var a4: Bool = true//布爾值為ture和false
//運算時類型轉化
var c = 20
var d = 10.0
var sum = Double(c) + d //Double
var sum1 = c + Int(d) //Int
3.類型別名
-
1.類型別名的定義,關鍵詞typealias
typealias AType = Int typealias CustomString = String
2.使用
let e: AType = 20
let : CustomString = "ssss"http://當定義的變量和常量沒被用到時眠菇,系統建議你改成""
4.元組
let (x,y,w,h) = (10,10,50,60) //x=10,y=10,w=50,h=60
//打印
print(x,y,w,h)
print(x)
5.函數/方法
-
1.對象方法
定義:func 方法名字(參數名字1: 參數類型,參數名字2: 參數類型, ...) -> 返回值
-
1.方法關鍵字:func 方法名字:funcMethod 參數:整數a,b 返回值->:兩個Int類型
func funcMethod(a: Int,b: Int) -> (Int, Int)
{
//返回兩個數的和边败、差
let sum = a + b
let miute = a - b//返回一個元組 return (sum,miute) } //調用方法,獲取得一個元組 let (s, m) = funcMethod(a: 20, b: 10) print(s) print(m)
-
2.方法名字為method1,無參無返回值
func method1()
{}
-
3.方法名字method2,有2個參數捎废,無返回值笑窜。
//3種創(chuàng)建方法:
func method2( p1: Int, p2: String)
{} func method3(withParamter1 p1: Int, paramter2 p2: String) { } func method4(_ p1: Int, _ p2: String) { } //方法調用 method2(p1: 20, p2: "ssss") method3(withParamter1: 20, paramter2: "sssss") method4(20, "ssss")
-
4.方法名字:method5 無參,有返回值
func method5() -> Int
{
return 30
}5.方法名字為method6,無參登疗,有返回值排截,返回值為元組
func method6() -> (Int, String)
{
return (20, "ss")
}-
2.類方法
定義:class func 方法名字(參數名字1: 參數類型,參數名字2: 參數類型, ...) -> 返回值
//需加個關鍵詞class,就可以啦。如: class func method6() -> (Int, String) { return (20, "ss") }
6.定義類和創(chuàng)建對象
//class表示定義類
class LoginViewController: UIViewController
{
func testMethod()
{
print("testMethod觸發(fā)")
}
class func testMethod2()
{
print("testMethod2觸發(fā)")
}
}
//初始化控制器對象
var loginCtrl = LoginViewController()
loginCtrl.testMethod()//調用方法
LoginViewController.testMethod2()//調用類方法
7.異常處理
1.自定義異常類型
enum LoginError: Error
{
case usernamenull /用戶名為空/
case passwordnull /密碼為空/
}-
2.設定拋出異常函數
throws 表示如果有錯誤就拋出異常
func loginButtonClick(username: String , password: String) throws { //如果用戶名為空 if username.characters.count == 0 { //本方法不解決匾寝,拋給調用該方法的方法去解決搬葬。 throw LoginError.usernamenull } else if password.characters.count == 0 { throw LoginError.passwordnull } //TODO::其它 }
-
3.捕捉異常
do { try 有可能會出現異常的代碼} catch{處理錯誤}
do { try loginButtonClick(username: "xiaomign", password: "") } catch LoginError.usernamenull { print("用戶名為空") } catch LoginError.passwordnull { print("密碼為空") } //如:json解析這個方法有異常返回荷腊,所以需要處理異常艳悔。 do { var dict = try JSONSerialization.jsonObject(with: Data(), options: JSONSerialization.ReadingOptions.init(rawValue: 0)) } catch { print("解析錯誤") }
8. 斷言
斷言使用格式:assert(條件語句, "注釋說明")
var str = "11"
assert(str.characters.count > 0, "字符串長度不能為空")
9for循環(huán)
for i in 1...10 //1 <= x <= 10
{
print(i)
}
for i in 1..<10 //1 <= x < 10
{
print(i)
}
10.字符串
1.定義一個字符串
var string = "字符串"2.定義一個空字符串
var string2 = String()-
3.字符串可變性
var string3 = "hello "
string3 += "world"
print(string3)var string4 = "xiaoming" var string5 = "你好" var string6 = string4 + " " + string5 print(string6)
4.字符
var char: Character = "A"
var char2: Character = "你"-
5.字符串插入值
var name = "小張"
var age = 20
var address = "黃巖島"
//拼成:小張 20 黃巖島
var result = name + " " + String(age) + " " + address
print(result)var result2 = "\(name) \(age) \(address)" print(result2)
6.計算字符串長度
var length = result2.characters.count
print(length)
-
7.比較字符串
var r: ComparisonResult = result.compare(result2)//注意:枚舉前面的類型可以省略 if r == .orderedAscending { print("升序") } else if r == .orderedDescending { print("降序") } else { print("相等") }
8.前綴/后綴比較
result.hasPrefix("s") //result是否以s開頭
result.hasSuffix("x") //result是否已為x后綴
11.if...else...
注意:if()else{}中,()可以省略女仰,{}任何情況下都不能省略猜年。
//語句1
if i == 0
{
print("i == 0")
}
//語句2
if i == 0
{
}
else if i == 1
{
}
else
{
}
12.switch
-
1.在switch里面,不用加break疾忍。
switch i { case 0: print("i = 0") case 1: print("i = 1") case 2: print("i = 2") default: print("default") }
-
2.switch匹配區(qū)間
switch i { case 0...5: print("i大于等于0 小于等于5") case 6...10: print("i大于等于6 小于等于10") default: print("i大于10") }
-
3.switch匹配元組
let (x1, x2) = (10, 20) switch (x1, x2) { case (10, 20): print("x1 = 10, x2 = 20") default: print("other") }
13.for...in
let array = ["1","2","3"]
//遍歷數據
for object in array
{
print(object)
}
14.數組
1.數組定義
let arr: [String] = [] //數組里面沒有數據乔外,數組元素類型是String
let arr2: Array<String> = []
var arr3: Array<Int> = [1,2,4] //在swift3.0中,NSMutableArray一罩,NSArray中可以存放基本類型
let arr4: NSMutableArray = NSMutableArray()2.取值
arr3[0]
arr3.first //第一個元素
arr3.last //最后一個元素3.添加元素
arr3.append(5)4.根據索引刪除元素
arr3.remove(at: 0)
print(arr3)5.刪除所有的
arr3.removeAll();
15.字典
-
1.定義一個空字典
var dic1: [String:String] = [:]
var dic2: Dictionary<String, String> = [:]var dic3 = ["key1": "value1", "key2":"value2"]
2.修改值
dic3["key1"] = "xiaoming"3.添加鍵值對
dic3["key3"] = "value3"4.把key3對于的值賦值為nil杨幼,但是鍵還存在
dic3["key3"] = ""5.移除鍵值對
dic3.removeValue(forKey: "key3")