swift 類型判斷 Dictory Array

一 、類型的判斷

1、is 的介紹

Swift 中類型的判斷的關鍵詞是 isis操作用來判斷某一個對象是否是某一個特定的類,它會返回一個bool類型的值。

2、 is的使用方法

1> is 的一般判斷(Swift 系統也會自動判斷)

// 類型的一般判斷方法

let NetWStr = "NetWork小賤"
/**
 判斷NetWStr 是否是 “字符串”
 */
if NetWStr is String {
     print("NetWStr->String 匹配成功")
}else{
     print("NetWStr->String 匹配失敗")
}

// 判斷 Int 是否能匹配 String
let NetWInt = 110
if NetWInt is String {
    print("NetWInt->String匹配成功")
}else{
    print("NetWInt->String 匹配失敗")
}

2> 系統不能爲我們判斷類型的處理

let Params:[Any] = ["NetWork小賤",120,["120",12],["As":"120"]]
/**
 遍歷數據獲取其類型
 */
for item in 0..<Params.count {
    let temp = Params[item]
    if temp is String {
         print("\(temp)"+"-- 字符串匹配成功")
    }
    if temp is Int {
         print("\(temp)" + "-- 整數匹配成功")
    }
    if temp is Array<Any> {
         print(temp)
         print("-- 數組匹配成功")
    }
    if temp is Dictionary<String, Any> {
        print(temp)
        print("-- 字典匹配成功")
    }
}

二、類型的轉換

1> 同類型的對象轉化 as

/**
 類型轉換
 as : 同類型的 OC 類型和 Swift 類型的轉化
 */
let NetWorkData = Data.init()
let NetWData = NetWorkData as NSData
print(NetWData)


let NetWorkStr = "Network小賤"
let kNetWStr = NetWorkStr as String
print(kNetWStr)

2> 類型的強制轉換(as !),否則拋出異常

/**
 類型的強制轉化
 
 as!操作符是類型轉換的強制格式,優點在於代碼簡單,如果可以轉換,則會返回轉換了格式的對象,如果無法轉換就會拋出運行時錯誤。因此除非百分之百確定可以轉換,否則不應該使用as!來進行強制類型轉換。

 */

class NetWClass:NSObject {
    var name = "NetWClass強制轉換成功"
}

/**
 類型的轉換 Any --> NetWClass
 */
let ParamClass:[Any] = [NetWClass.init()]

for item in ParamClass {
    let temp = item as! NetWClass
    print(temp.name)
}

3> 非強制的類型轉換(as?),如果轉換不成功返回nil


/**
 as! 類型轉換,在類型轉換失敗的時候返回 Nil。否則返回轉換後的類型
 */
class NetWClassA:NSObject {
    var name = "NetWClassA強制轉換成功"
}

class NetWClassB:NSObject {
    var name = "NetWClassB強制轉換成功"
}

let ParamClassX:[Any] = [NetWClassA.init(),NetWClassB.init()]
for item in ParamClassX {
    let temp = item as? NetWClassA
    if temp == nil {
        print(temp)
    }else{
        print((temp?.name)!)
    }
    
    let tempX = item as? NetWClassB
    if tempX==nil {
         print(tempX)
    }else{
        print((tempX?.name)!)
    }
}

三、string int double之間的轉換

import UIKit

var str = "Hello, playground"
// 1 字符串轉Int Double Float
var str1 = "818";
// 轉Int
var val1 = Int(str1);
// 轉Double
var val2 = Double(str1);
// 轉float
var val3 = Float(str1);

// 如果是25.0 轉 Int,則需要先轉爲Double 類型再將其轉爲Int類型
var val4 = "25.0";
let count = Double(val4);
let val4_int  =  Int(count);


print(val3!);




// 2 數字轉爲字符串
var num1 = 25;
var str2 = "\(num1)";
// 如果是Int 類型的話 直接進行轉
var str3 = String(num1);

// 如果是Double 類型的話 可以通過以下方式進行轉換
var str4 = String(stringInterpolationSegment: num1);


// 3 數字相互轉換
var num2 = 25.0;
// Double 轉爲 Int
var num3 = Int(num2);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章