//很多
ios程式設計師,從
oc轉向
swift
,就像身在曹營心在漢,寫著
swift
**,卻懷揣了一顆
oc的心,經常碰見
oc**在
swift
裡找不到,或者看不見
oc的影子就很是著急(我以前也是很長時間牴觸著
swift,
其實用順了挺好的) //
就像if let
和guard let
在專案裡不用你依然可以完成工作,但是這兩個方法其實挺重要的 //
不囉嗦了,開始上**解釋
varstr1:
string?
varstr2:
string?
varstr3:
string?
//如果我希望當三個都不為空的時候做事情 //
不用if let
和guard let
str1 =
"1"
str2 =
"2"
str3 =
"3"
ifstr1 !=
nil&& str2 !=
nil&& str3 !=
nil //
用if let
varstr4:
string?
varstr5:
string?
varstr6:
string?
//如果我希望當三個都不為空的時候做事情 //
用if let
str4 =
"1"
str5 =
"2"
str6 =
"3"
//tip:
你可以直接這樣做
let str4 = str4
,不用去想其他名字定義變數 if
letstr4 = str4,
letstr5 = str5,
letstr6 = str6
else //
程式走過
if let
後並不對屬性做修改還是會有
optional
("if let
語句過後\(
str4)\
(str5)\
(str6)")
//列印結果為
if let
語句過後
optional("1")optional("2")optional("3")
//用guard let
varstr7:
string?
varstr8:
string?
varstr9:
string?
//如果我希望當三個都不為空的時候做事情 //
用guard let
str7 =
"1"
str8 =
"2"
str9 =
"3"
guard
letstr10 = str7,
letstr11 = str8,
letstr12 = str9
else
//tip:
如果有乙個引數為空就會
return
走不到這裡 //
程式走過
guard let
後定義的引數不會有
optional
,不用強制解包加!
("guard let
語句過後\(
str7)\
(str8)\
(str9)")
//列印結果為
guard let
語句過後
optional("1")optional("2")optional("3")
("guard let
語句過後\(
str10)\
(str11)\
(str12)")
//列印結果為
guard let
語句過後
123
你也可以試試把某個引數不賦值看看列印結果,多敲幾遍,就會發覺很自然了。
如何理解程序與執行緒
程序 process 和執行緒 thread 是作業系統的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發現有乙個很好的模擬,可以把它們解釋地清晰易懂。1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就...
繼承與多型該 如何理解
首先思考我們應該要知道的乙個問題 繼承出現的意義,或者說,我們為什麼想到用繼承。當我們在寫比如乙個計算器的工具時,首先寫了乙個加法運算的類。感覺很輕鬆,在加乙個減法運算時,發現把加法運算的類粘過來稍微改改就行了。同樣的,乘法 除法 開根運算 冪次方運算等,寫出來這麼多類來,發現,每乙個類的大部分 都...
如何理解使用者態與核心態
在cpu的所有指令中,有一些指令是非常危險的,如果錯用,將導致整個系統崩潰。比如 清記憶體 設定時鐘等。如果所有的程式都能使用這些指令,那麼你的系統一天宕機n回就不足為奇了。所以,cpu將指令分為特權指令和非特權指令,對於那些危險的指令,只允許作業系統及其相關模組使用,普通的應用程式只能使用那些不會...