【swift-總結】基礎使用
阿新 • • 發佈:2018-12-25
宣告變數與常量
//使用var宣告一個變數
var str = "Hello, playground"
str = "Hello world";
//使用let宣告一個常量
let str1 = "我是帥哥";
str1 = "我不是帥哥"; //這句話會報錯
let name = "我是帥哥"; //宣告一個常量,型別自動推斷為String型別
var age:Int = 20; //宣告一個變數指定好型別
輸出語句
//在swift1中是println在swift2.0以後一律改為print了
print("我說過一句話\(name)");
print("我的年齡是\(age)");
整形
swift提供了有符號和無符號的8位,16位,32位和64位的型別
獲取整形的邊界
let minValue = UInt8.min; //獲取無符號的8位整形的最小值
let macValue = UInt8.max; //獲取無符號的8位整形的最大值
Int型別
int型別包含的幾乎我們常用的整數,64位平臺最大值為9223372036854775807
- 在32位平臺 上Int型別為32位正數
- 在64位平臺 上Int型別為64位正數
上面兩點同樣適用於無符號型別
浮點數
- Double相當於64位的浮點數
- Float相當於32位的浮點數
let pi = 3.14 ; //swift預設推斷位Double型別
整形和浮點型相加
let sum = 2 + 2.14; //這樣不需要強制型別轉換
let count = 2;
lei sum = pi + Double(count); //這中需要強制型別轉換
typealias型別同名
相當於C語言中的typedef
typealias Type = UInt16; //Type就是UInt16這個型別
var TypeMin = Type.min; //UInt16的最小值
boolean值
swift中的布林值位true 和 false
OC中的布林值位YES 和 NO
var flag = true;
flag = false;
Tuples元組
元組是幾個任意型別值的組合
例如
let myTuples = (20, "沸沸騰"); //myTuples就是一個二元元組,20的序號為0,"沸沸騰"為1
let myTuples1 = (20, "沸沸騰","大帥哥");//這個就是一個三元組
元組的訪問
//使用序號訪問
print("我的年齡是\(myTuples.0)"); //我的年齡是20\n
//將這個元組賦值給另一個元組接收
let (myName, myAge) = myTuples;
print("my name is \(myName)");
//如果只是需要元組中的某些值可以使用下面這個方法
let (age1, _) = myTuples;
print("my age is \(age1)");
也可以使用下面這種方法宣告和使用
let myInfo = (name: "沸沸騰", age: 22);
print("my name is \(myInfo.name), my age is \(myInfo.age)");
可選值optional
optional可能是一個值,也可能不是一個值,當不是一個值的時候就為nil,在swift中nil就是一個確定的型別,並不是指標
var myStr: String?; //myStr就是nil
var myStr: String; //myStr什麼都不是
myStr = "1234";
var num = Int(myStr); //被推斷為1234,位Int?型別
var myStr1 = "hell"
var num1 = Int(myStr1); //轉換失敗
使用if let把可選值繫結
//num是一個可選值
if let constNum = num {
print("num 有值 為\(constNum)");//num被成功轉為正數
} else {
print("num 沒有 值");
}
多個轉個
//如果num有值,num1有值
if let constNum = num, constNum1 = num1 {
print("num 有值 為\(constNum)");
} else {
print("num 沒有 值");
}
隱式解析可選
隱式解析可選主要用於類的構造過程中
隱式可選其實就是一個普通的可選,但是也可以當做普通型別使用
普通可選訪問值
var myStr = "1234";
var num:Int? = Int(myStr);
print("\(num!)"); //得到1234
print("\(num)"); //得到optional(1234);
var myStr1 = "hell"
var num1: Int? = Int(myStr1);
print("\(num1!)"); //報錯,因為沒有值可以解析
print("\(num1)"); //nil
隱式可選訪問值
var myStr = "1234";
var num:Int! = Int(myStr);
print("\(num!)"); //1234
print("\(num)"); //1234
var myStr1 = "hell"
var num1: Int! = Int(myStr1);
print("\(num1)"); //nil
print("\(num1!)"); //報錯
錯誤處理
使用 try catch語句 或者 throw exception
斷言
斷言就是保證值是要求的,不然就會報錯
使用情況:當你的值必須是正確的時候才能保證程式執行,那麼使用斷言就可以保證值的正確性
let age = -3;
assert(age >= 0, "年齡不符合要求");