//
// viewcontroller.swift
//import uikit
class viewcontroller: uiviewcontroller
}func companyname(companyname:string) -> string?
return nil
}}/*
oc下面**,可以編譯通過,但是執行時會出錯!因為company是空的。
- (void)viewdidload
- (nsstring*)returncompanyname:(nsstring*)companyname
else
return
} return nil;
} 1. swift中的可選型物件
2. swift語言設計的時候有很多安全方面的考慮,可選型表示了swift是一門型別安全的語言,從上面的例子中你可以看到swift中的可選型會在編譯時就去檢查某些可能發生在執行時的錯誤。
3.上面舉例說明,swift比oc安全
4.❤️string? 可選型型別,而不是string型別
語法糖:表示可能為string型別,可能為nil
let hasvalue = company?.hashvalue
hasvalue就是company拆包後的值(nil或者bool)
5.❗️❤️var name:string! : 類中的屬性
在swift中類在初始化的時候它的屬性必須都被初始化。
如果你不想設定某個屬性的預設值的話,使用?把它加入可選鏈中
6.❗️拆包
(1)強制拆包,確信可選型有值的情況下
let newcompany = "i am working at " + company!
(2)if - let結構的可選繫結來判斷乙個變數是不是空值,進行拆包。
iflet tempstring = company
*/
swift 可選型別,強制拆包,隱性拆包
當我們不知道變數的值時,可以將改變量設定為可選型別 表明str是可選型別 string型別或者nil型別 var str string?表明str是可選型別 是string型別或者nil型別 var str string?hello world str str?uppercasestring 拆包 ...
swift 隱式可選型例項詳解
1 隱式可選型的基本使用 var errormessage string?nil errormessahrgfllige not found the message is errormessage 隱式可選型的定義 var errormessage string nil errormessage n...
11 可選型別 間接拆包
optional表示乙個常量或者變數沒有值的這種情況,我們用if語句來判斷,用binding語句來訪問它的值,有時候,乙個程式中,乙個optional一定是有值的,這時候我們就不需要用if語句來check它,我們幾乎可以假定這個是一定有值的,這種型別叫做間接拆包,如 let 彩票 string 5 ...