Swift基礎語法介紹

2021-07-03 18:23:47 字數 3272 閱讀 1572

let maximumnumberofloginattempts = 10

var currentloginattempt = 0

以上**可以理解為:

宣告乙個叫maximumnumberofloginattempts的值為10的常量。然後宣告乙個變數currentloginattempt初始值為0。

在這個例子中,最大的登入嘗試次數10是不變的,因此宣告為常量。而已經登入的嘗試次數是可變的,因此定義為變數。

2.swift使用println來輸出變數或者常量:

println(friendlywelcome)

// prints 「bonjour!」

println是乙個全域性函式,用來輸出乙個值,最後輸出乙個換行。在xcode中,println輸出在控制台中。print函式也類似,只不過最後不會輸出換行。

3、和其它一些程式語言不同,swift不需要使用分號 ; 來分隔每乙個語句。當然你也可以選擇使用分號,或者你想在一行中書寫多個語句。

let cat = ""; println(cat)

// prints ""

4.int型別

一般來說,程式設計人員在寫**時不需要選擇整數的位數,swift提供了一種額外的整數型別int,是和當前機器環境的字長相同的整數字數

在32位機器上,int和int32一樣大小

在64位機器上,int和int64一樣大小

除非你確實需要使用特定字長的正數,盡量使用int型別。這保證了**的可移植性。即使在32位的平台上,int也可以儲存-2,147,483,648 到2,147,483,647範圍內的值,這對大部分正數來講已經足夠了。

uint型別

swift還提供了一種無符號型別uint,同理也是和當前機器環境的字長相等。

在32位機器上,uint和uint32一樣大小

在64位機器上,uint和uint64一樣大小

5.整數轉換

可以儲存在乙個整數常量或變數的範圍根據每個數值型別是不同的。乙個int8常量或變數可以儲存範圍-128到127之間的數,而乙個uint8常量或變數可以儲存0到255之間的數字。錯

let cannotbenegative: uint8 = -1

// uint8 cannot store negative numbers, and so this will report an error

let toobig: int8 = int8.max + 1

// int8 cannot store a number larger thanits maximum value,

// and so this will also report an error

不同範圍的值,你必須在基礎數值型別上逐步做轉換。這種可以防止隱藏的轉換錯誤,並幫助明確你的**中型別轉換的意圖。

要轉換乙個特定的數字型別到另乙個,你需要定義乙個所需型別的新變數,並用當前值初始化它。在下面的例子中,常量twothousand是uint16型別的,而常量one是uint8型別的。它們不能被直接相加的,因為型別不同。相反的,該​​示例呼叫uint16(one)來建立乙個用變數one的值初始化的uint16型別

let twothousand: uint16 = 2_000

let one: uint8 = 1

let twothousandandone= twothousand + uint16(one)

以做加法運算了。輸出常量(twothousandandone)被推斷為uint16型別的,因為它是兩個uint16的值的總和。

sometype(ofinitialvalue)是swift預設的型別轉換方式。實現上看,uint16的有乙個接受uint8值的構造器,這個構造器用於從現有uint8構造出乙個新的uint16的變數。你不能傳入任意型別的引數,它必須是乙個型別的uint16初始化能接受的型別。如何擴充套件現有型別,規定接受新的型別(包括你自己的型別定義)可以參見 extensions。

整數和浮點數轉換

整數和浮點型別

let three = 3

let pointonefouronefivenine= 0.14159

let pi = double(three) +pointonefouronefivenine

用來建立double型別的新變數,從而使表示式兩側是相同的型別。如果沒有這個轉換,加法操作不會被允許。反之亦然,乙個整數型別可以用double或float值進行初始化:

let integerpi= int(pi)

// integerpi equals 3, and

is inferred tobe of type int

當使用這種方式初始化乙個新的整數值的時候,浮點值總是被截斷。這意味著,4.75變為4,和-3.9變為-3。

6. if語句和強制解包

程式設計人員可以使用if語句來檢測乙個可選型別是否包含乙個特定的值,如果乙個可選型別確實包含乙個值,在if語句中它將返回true,否則返回false。如果你已經檢測確認該值存在,那麼可以使用或者輸出它,在輸出的時候只需要在名稱後面加上感嘆號(!)即可,意思是告訴編譯器:我已經檢測好這個值了,可以使用它了。如:

if convertednumber  else 

// prints "123 has an integer value of 123"

7.

nil可以給可選型別指定乙個特殊的值nil:

var serverresponsecode: int? = 404

// serverresponsecode contains an actual int value of 404

serverresponsecode = nil

// serverresponsecode now contains no value

如果你定義了乙個可選型別並且沒有給予初始值的時候,會預設設定為nil

var surveyanswer: string? // surveyanswer is automatically set to nil

注: swift 的nil不同於object-c中的nil. object-c中,nil是乙個指標指向不存在的物件。swift中,nil不是指標而是乙個特定型別的空值。任何型別的可選變數都可以被設為nil,不光是指標。

10: swift語言教程(五)控制流

swift語言教程(六)函式

swift語言教程(七)閉包

swift語言教程(八) 列舉型別

Swift基礎語法

在swift中匯入類庫使用 import 類庫名,不再使用 和 import foundation 輸出語句 swift中的輸出語句使用print c語言中使用prientf print hello,world 常量 變數 定義常量使用 let 常量不能改變 定義變數使用var 變數可以改變 let...

Swift基礎語法

單行注釋 多行注釋 多行注釋巢狀 mark 分塊快速查詢x mark 檔案結構標記 todo 待完成標記 文件注釋 command option 文件注釋的物件 自定義型別 變數 方法等,但是重點還是方法說明 使用者 struct user 姓名 varname string 年齡 varage i...

SWIFT基礎語法(二)

class shape 通過在類名後新增圓括號來例項化,使用.來訪問例項屬性和方法 var myshape shape 在類名後新增圓括號來例項化 shape.ofnumber 34print myshape.desciription 這個版本的shape類遺漏了乙個重要的事情 用於在建立例項時設定...