變數與常量分別用var
和let
表示,基本的簡單定義如下,常量不可修改,變數可以修改,swift語言是一門現代化語言,很多情況不需要制定型別,編譯器會自動判斷型別,在xcode中可以按住option
並且把滑鼠移動到變數名稱上檢視變數型別
let maximumnumberofloginattempts =
10var currentloginattempt =
0
當然有些情況也是需要定義型別的,定義型別如下:
var welcomemessage:
string
var red, green, blue:
double
在變數名稱後面加上:
和變數型別即可,也可以一行定義多個同型別變數
swift中注釋用//
和/* */
,前者表示行注釋,後者表示段注釋
// this is a comment.
/* this is also a comment
but is written over multiple lines. */
swift語言中一般不需要用到分號,但是當你需要在一行寫多段**時,需要用分號隔開
let cat =
"?";
print
(cat)
// prints "?"
整數分為有符號和無符號整數int
為有符號整數uint
為無符號整數,他們的範圍與機器有關,32位機器的表示範圍是int32
,64位機器為int64
浮點數有兩種float
和double
,double
有著64位的雙精度,float
是32位的單精度數
bool
數值只有兩個值,true
和false
,與數字無關,不要與c/c++混淆
let orangesareorange =
true
let turnipsaredelicious =
false
元組可以將不同型別資料集合到一起
)// http404error is of type (int, string), and equals (404, "not found")如下轉換出來的數字是可選值型別(int?
),可選值表示值有可能為空,沒有意義
let possiblenumber =
"123"
let convertednumber =
int(possiblenumber)
// convertednumber is inferred to be of type "int?", or "optional int"
nil
的意義為空
var serverresponsecode:
int?
=404
// serverresponsecode contains an actual int value of 404
serverresponsecode =
nil// serverresponsecode now contains no value
直接輸出可選值型別是會有optinal(value),需要用!解開
if convertednumber !=
nil// prints "convertednumber has an integer value of 123."
可選值的轉換還可以用if-let
語句
if
let constantname = someoptional
iflet actualnumber =
int(possiblenumber)
else
// prints "the string "123" has an integer value of 123"
iflet firstnumber =
int(
"4")
,let secondnumber =
int(
"42"
), firstnumber < secondnumber && secondnumber <
100// prints "4 < 42 < 100"
在swift語言中沒有隱式轉換,不同型別之間需要進行顯式轉換
let toobig:
int8
=int8
.max
+1
如果超過數值表示範圍,則會報錯
斷言可以用於除錯bug
let age =-3
assert
(age >=0,
"a person's age can't be less than zero."
)// this assertion fails because -3 is not >= 0.
// in the implementation of a subscript...
precondition
(index >0,
"index must be greater than zero."
)
Swift語言學習筆記(4)
public class somepublicclass internal class someinternalclass fileprivate class somefileprivateclass private class someprivateclass 常量,變數,函式的訪問級別 publ...
Swift語言學習筆記(四)
67.如果結構體 struct 的例項被宣告為常量的話,就不能對其屬性進行修改,即使是 var型別的屬性。而對於類 class 來說則不是這樣,如果乙個類的例項被宣告為常量,仍然可以修改其 var屬性。68.惰性屬性 lazy property 使用關鍵字 lazy 新增在宣告前面 惰性屬性在使用時...
程式語言學習日誌
從九月份找工作到現在,我發現自己除了英語閱讀還不錯之外,基本上沒有其他的優勢。從大二開始,c語言課程設計就沒有好好參與,至於參加其他的學生團隊也因為比較孤僻 沒有自信,或者進入了之後無法堅持下來,整個大學過的很狼狽,可以用一無所長和荒廢兩個字來形容吧。想起來,高中老師教給我們乙個很好的習慣,寫年終總...