本文和大家分享的主要是swift
中_Any
和
AnyObject
的類型轉換相關內容,一起來看看吧,希望對大家
學習swift有所幫助。
1.AnyObject
AnyObject
表示任何類型的實例
class
Person{
var name:String?
init(name:String) {
self.name = name
}
}
class
Employee:
Person {
var company:String?
init(name:String,company:String) {
self.company = company
super.
init(name: name)
}
}
class
Student:
Person {
var school:String?
init(name:String,school:String) {
self.school = school
super.
init(name: name)
}
}
let employee1 = Employee(name:"
張三
",company:"apple
公司
")
let employee2 = Employee(name:"
李四
",company:"google
公司
")
let members:[AnyObject] = [employee1,employee2]
for item
in members{
let employee = item
as!Employee
print("
員工公司:
\(String(describing: employee.company))")
}
2.Any類型
Any
類型可以表示任何類型,比如類,函數,
Int
,
String
,元祖等
var things = [Any]()
things.append(42)
things.append("hello")
things.append((2,5))
things.append(Employee(name:"
梅梅
", company: "
中國航天公司
"))
things.append({(name:String) -> String
in "
你好
,\(name)"})
for thing
in things{
switch thing{
case
let someInt
as Int:
print("
整數:
\(someInt)")
case
let someString
as String:
print("
字符串
:\"\(someString)\"")
case
let (x,y)
as (Int,Int):
print("
元組類型:
\(x,y)")
case
let employee
as Employee:
print("
員工
:\(String(describing: employee.name)),
公司
:\(String(describing: employee.company))")
case
let stringConverter
as(String)->String:
print(stringConverter("
小明
"))
default:
print("
其他
")
}
}
注意
在switch
語句的
case
語句里使用類型轉換操作符
as
而不是
as!
,來檢查和轉換到一個明確的數據類型,在
switch case
語句中這樣的檢查總是安全的
QQ截圖20170409201802.png (111.53 KB, 下載次數: 0)
下載附件
12 秒前 上傳
Any
和
AnyObject
的類型轉換結果輸出
來源:
簡書