Swift 基礎(chǔ)語法總結(jié)

?Swift 簡介

. Swift 是蘋果公司余2014年推出的新語言礼殊,用于iOS 和 OS X 的應(yīng)用編程

Swift 歷史

.從發(fā)布至今共經(jīng)歷的過 1.0、2.0试躏、3.0斩披、3.2端姚、4.0晕粪、4.2、5.0渐裸、5.1等版本巫湘,中間語法和API逐步完善并穩(wěn)定下來。

常量&變量

在Swift中規(guī)定:在定義一個標(biāo)識符時必須明確說明該標(biāo)識符是一個常量還是變量

使用let來定義常量,定義之后不可以修改

使用var來定義變量,定義之后可以修改

例:

let a :Int =10// 錯誤寫法,當(dāng)一個字段定義為常量時是不可以修改的//?

a = 20

var b :Int=20// 因為b定義為變量,因此是可以修改的

b =30

Swift中數(shù)據(jù)類型

1.與OC不同的是Swift中不在提供隱式轉(zhuǎn)換昏鹃,相同的數(shù)據(jù)類型才可以計算

2.不同類型的話尚氛,可以強(qiáng)制轉(zhuǎn)換與OC不用,Swift中例如:

????Int類型轉(zhuǎn)成Double類型:Double(標(biāo)識符)

????Double類型轉(zhuǎn)成Int類型:Int(標(biāo)識符)

邏輯分支

1.if語句洞渤,在Swift中判斷條件可以不在加()阅嘶,也沒有OC中非0即真的語法了,另外必須有明確的Bool值载迄,不再是YES/NO讯柔,而是true/false。

2.switch語句护昧,判讀條件可以是String類型魂迄,case后可以不跟break(默認(rèn)會有break),基本用法和OC是一樣的捏卓。

3.三目運算符和OC中基本保持一致

例:ar a =10?

? ? ? ?var b =50

? ? ? ?var? result = a > b ? a : b

? ? ? print(result)? 這里說一下 早些版本打印用的是println

4.guard這是是Swift中特有的OC中沒有這個語法极祸,這個特點是增加程序的可閱讀性慈格,與if的語法很像怠晴。? ? ? ? ? ?

guard語句必須帶有else語句,它的語法如下:

當(dāng)條件表達(dá)式為true時候跳過else語句中的內(nèi)容浴捆,執(zhí)行語句組內(nèi)容

條件表達(dá)式為false時候執(zhí)行else語句中的內(nèi)容蒜田,跳轉(zhuǎn)語句一般是return、break选泻、continue和throw

例:guard 條件表達(dá)式else{

????????/ / 條換語句

? ? ? ?????break

????????}

????語句組

循環(huán)的介紹

1.for循環(huán)

fori in0..<10{//這個是開區(qū)間冲粤,不包含10

? ? ? ? print(i)

? }

fori in0...10{//這個是閉區(qū)間美莫,包含10

????????print(i)

}

字符串

1.Swift中字符串的類型是String,本質(zhì)是個結(jié)構(gòu)體梯捕,性能更高厢呵,NSString是一個OC對象,性能相對略差傀顾。String可以直接遍歷襟铭,另外提供了NSString與String之間的無縫轉(zhuǎn)換。

2.下面進(jìn)行舉例子(3.2版后字符串操作不同短曾,與OC區(qū)別有點大)

var str ="Hello, playground"

str.prefix(3)// Hel? 取前3個字符

str.suffix(3)// und??取后3個字符

遍歷字符串

var swift ="Swift 很有趣"

for(index , value) in swift.enumerated(){

????????print("index is \(index), value is \(value)")

}

替換字符串

if let index = swift.index(of:"很"){?

?swift.replaceSubrange(index ..< swift.endIndex,with:"is interesting!")

}?

將數(shù)組中的元素拼接成字符串

? ?let arrayStr : String! = array11.joined(separator: ",")

? ? print("arrayStr = \(arrayStr!)"

數(shù)組

1.主要四部寒砖,增刪改查(搞的和數(shù)據(jù)庫一樣的操作),廢話不多說 嫉拐,直接搞起來:

// 定義一個可變數(shù)組,必須初始化才能使用var array1 : [String] = [String]()

// 定義一個不可變數(shù)組let? array2 : [NSObject] = ["why",18]

// 定義時直接初始化var array = ["why","nqs","gyx"]

// 添加數(shù)據(jù)array.append("yz")

// 刪除元素array.removeFirst()

// 修改元素array[0] ="why"http:// 取值array[1]

2.數(shù)組遍歷

// 遍歷數(shù)組

// for in方式

for item in array {

????print(item)

}

// 設(shè)置遍歷的區(qū)間

for item in array[0..<2] {

????print(item)

}

字典

1.Swift中字典也是一個泛型的集合哩都。從初始化和基本操作開始:

// 定義一個可變字典

var dict1 : [String:NSObject] = [String:NSObject]()

// 定義一個不可變字典let dict2 = ["name":"nqs","age":18]

// 添加數(shù)據(jù)

dict["height"] =1.88

dict["weight"] =70.0

// 刪除字段? dict.removeValueForKey("height")

// 修改字典? ?dict["name"] ="ergou"

// 查詢字典? ?dict["name"]

// 遍歷字典中所有的值for value in dict.values {print(value)}

// 遍歷字典中所有的鍵for key in dict.keys {print(key)}

// 遍歷所有的鍵值對for(key, value) in dict {print(key)print(value)}

最后說一句,字典不能相加合并

元祖

1.元祖是swift中特有的類型婉徘,它是一種數(shù)據(jù)結(jié)構(gòu)在數(shù)學(xué)中應(yīng)用廣泛漠嵌,類似于數(shù)組或者字典,廢話不多說直接舉例子:

// 寫法一:

let error = (404,"Not Found")

print(error.0)

// 寫法二: (也就相當(dāng)于自己取了個別名)

let error = (errorCode :404, errorInfo :"Not Found")

print(error.errorCode)

可選類型

說重點 這個是比較難理解的盖呼,在這只說基本的概念献雅,寫過OC的同學(xué)都是知道,當(dāng)我們寫一個屬性的時候是可以為nil的塌计,最基本的寫法(語法糖)

// 寫法一:定義可選類型let name :Optional =nil

// 寫法二:定義可選類型,語法糖(常用)let name :String? =nil

應(yīng)用場景:

// 通過該方法創(chuàng)建的URL,可能有值,也可能沒有值.

// 錯誤寫法:如果返回值是nil時,就不能接收了

// 如果字符串中有中文,則返回值為nil,因此該方法的返回值就是一個可選類型,而使用一個NSURL類型接收是錯誤的

let url :NSURL=NSURL(string:"www.baidu.com")

// 正確寫法:使用可選類型來接收let url :NSURL? =NSURL(string:"www.baidu.com")

// 該方式利用類型推導(dǎo)let url =NSURL(string:"www.520it.com")

// 通過url來創(chuàng)建request對象:在使用可選類型前要先進(jìn)行判斷是否有值

// 該語法成為可選綁定(如果url有值就解包賦值給tempURL,并且執(zhí)行{})

if let tempUrl = url {let request =NSURLRequest(URL: tempUrl)}

函數(shù)

Swift中的函數(shù)的概念就相當(dāng)于OC中的方法具體格式如下:

func函數(shù)名(參數(shù)列表)-> 返回值類型{?

?代碼塊return返回值

}

func是關(guān)鍵字,多個參數(shù)列表之間可以用逗號(,)分隔挺身,也可以沒有參數(shù)

使用箭頭“->”指向返回值類型

如果函數(shù)沒有返回值,返回值為Void.并且“-> 返回值類型”部分可以省略

分為以下幾種:

@1無參數(shù)無返回值的

func about()->Void{

print("iphone6s plus")

}

@2有參數(shù)沒有返回值

func callPhone(phoneNum : String){

print("打電話給\(phoneNum)")

}

@3沒有參數(shù)有返回值

func readMessage()->String{

return"吃飯了嗎?"

}?

@4有參數(shù)有返回值

func sum(num1 : Int, num2 : Int)->Int{

return num1 + num2

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锌仅,一起剝皮案震驚了整個濱河市章钾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌热芹,老刑警劉巖贱傀,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伊脓,居然都是意外死亡府寒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門报腔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來株搔,“玉大人,你說我怎么就攤上這事纯蛾∠朔浚” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵翻诉,是天一觀的道長炮姨。 經(jīng)常有香客問我捌刮,道長,這世上最難降的妖魔是什么舒岸? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任绅作,我火速辦了婚禮,結(jié)果婚禮上蛾派,老公的妹妹穿的比我還像新娘棚蓄。我一直安慰自己,他們只是感情好碍脏,可當(dāng)我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布梭依。 她就那樣靜靜地躺著,像睡著了一般典尾。 火紅的嫁衣襯著肌膚如雪役拴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天钾埂,我揣著相機(jī)與錄音河闰,去河邊找鬼。 笑死褥紫,一個胖子當(dāng)著我的面吹牛姜性,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播髓考,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼部念,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了氨菇?” 一聲冷哼從身側(cè)響起儡炼,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎查蓉,沒想到半個月后乌询,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡豌研,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年妹田,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹃共。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡鬼佣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出及汉,到底是詐尸還是另有隱情沮趣,我是刑警寧澤屯烦,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布坷随,位于F島的核電站房铭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏温眉。R本人自食惡果不足惜缸匪,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望类溢。 院中可真熱鬧凌蔬,春花似錦、人聲如沸闯冷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛇耀。三九已至辩诞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纺涤,已是汗流浹背译暂。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留撩炊,地道東北人外永。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像拧咳,于是被迫代替她去往敵國和親伯顶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容