1. 程式人生 > >【swift-總結】基礎使用

【swift-總結】基礎使用

宣告變數與常量

//使用var宣告一個變數
var str = "Hello, playground"
str = "Hello world";

//使用let宣告一個常量
let str1 = "我是帥哥";
str1 = "我不是帥哥"; //這句話會報錯

let name = "我是帥哥";  //宣告一個常量,型別自動推斷為String型別
var age:Int = 20;   //宣告一個變數指定好型別

輸出語句

//在swift1中是println在swift2.0以後一律改為printprint("我說過一句話\(name)");
print("我的年齡是\(age)");

整形

swift提供了有符號和無符號的8位,16位,32位和64位的型別

獲取整形的邊界

let minValue = UInt8.min;   //獲取無符號的8位整形的最小值
let macValue = UInt8.max;   //獲取無符號的8位整形的最大值

Int型別

int型別包含的幾乎我們常用的整數,64位平臺最大值為9223372036854775807

  1. 在32位平臺 上Int型別為32位正數
  2. 在64位平臺 上Int型別為64位正數

上面兩點同樣適用於無符號型別

浮點數

  1. Double相當於64位的浮點數
  2. 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, "年齡不符合要求");