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);
原创文章 88 获赞 101 访问量 16万+

猜你喜欢

转载自blog.csdn.net/sun_cui_hua/article/details/104813551