iOS15001-Swift

關(guān)于Swift是如何產(chǎn)生的满俗,蘋果怎么看待這個等等,我在這里就不廢話了淋样。我寫這篇文章依據(jù)有部分網(wǎng)站的視頻講解狈定、官方的技術(shù)文檔、stackoverflow习蓬、一些技術(shù)博客纽什,我還是以一個技術(shù)小白的身份寫這篇文章,這篇文章對于我來說就是查漏補缺的作用,因為之前學(xué)過Swift躲叼,但是感覺不扎實芦缰。

1.二進(jìn)制、八進(jìn)制枫慷、十六進(jìn)制:前綴分別為0b,0o,0x,舉個栗子

let decimalInt:Int = 17
let binaryInt:Int = 0b10001
let octalInt:Int = 0o21
let hexadecimalInt:Int = 0x11

2.數(shù)字的表達(dá)有一些注意
4.1 let bignum = 1_000_000
4.2強制轉(zhuǎn)換 let pi:Double = Double(Int(1.2))

3.注釋和分號:不強制使用分號让蕾,一行有多個語句需要使用分號分隔

4.Swift基本數(shù)據(jù)類型
4.1類型別名 typealias Vals = String
4.2nil 是個值,OC里的nil是個空指針
4.3可選類型Optional 可選值:或者是一個值或听,或者是沒有值
4.3.1嘆號(!)能確定可選值有值
4.3.2強制轉(zhuǎn)換不能使用可選值轉(zhuǎn)換
4.3.3Optional Binding:if let user = 可選值//已經(jīng)解包
4.5元組Tuples var tus = ("hello",1,2,"323")
let reg = (a:1,b:"hello") 訪問->reg.a
4.6可以使用下劃線忽略部分?jǐn)?shù)值
4.7字符和字符串
4.7.1 String 是值類型
4.7.2 初始化方式:var x = ""或者var x = String()
4.7.3 isEmpty 判斷是否為空
4.7.4 全局函數(shù) countElements 求長度
4.7.5NSString 求長度 length
4.7.6 .hasPrefix 和 .hasSuffix
4.7.7 trim

var xc = " 123 2321 !! 2"
xc.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
println(xc.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()))

4.7.8 join

var xa = "~"
println(xa.join(["1989","05","31"]))

4.7.9 splice

var xb = "hello my name is xiaoming,what`s your name?"
println(xb.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: " ")))

4.7.10 Index 和Range

var str = "hello my name is/////"
let startIndex = str.startIndex
let endIndex = advance(startIndex, 10)
let range = Range<String.Index>(start:startIndex,end:endIndex)
str.rangeOfString("nsme", options: NSStringCompareOptions.CaseInsensitiveSearch, range: range )

5.運算符
5.1 探孝??
a??b -> a!= nil ? a!: b條件a解包之后的類型必須和b一樣;a必須是個可選值

6.for (index,item) in enumerate(array){}

7.switch 一些高級用法
7.1 可以判斷是不是在哪個區(qū)間 case 0...9
7.2 元組元素判斷 case (0,0),如果只想判斷一個元素是不是符合 case (_,0),判斷是不是在哪個區(qū)間case (0...9,3..<9)
7.3value binding case (let x,0)
7.4可以增加條件判斷 case let(x,y) where x==y
7.5判斷之后還想繼續(xù)判斷而不跳轉(zhuǎn)使用fallthrough

8.函數(shù)
8.1傳入的參數(shù)如果需要修改的話誉裆,稱為變量參數(shù)顿颅。需要加入var關(guān)鍵字。 func setL(var num:Int) ->String
8.2inout參數(shù)足丢,加了inout關(guān)鍵字的時候粱腻,可以改變外圍的數(shù)據(jù)的值,而不是僅僅在函數(shù)體執(zhí)行改變斩跌。
8.3閉包最基本的語法{(參數(shù)列表)->返回值 in 具體邏輯}
8.4閉包的簡寫
8.4.1 {(a,b) in 具體邏輯}根據(jù)上下文判斷參數(shù)的類型和返回值類型绍些,所以可以省略
8.4.2 {(a,b) in 返回值表達(dá)式}這里是考慮有返回值的情況,需要寫return的時候耀鸦,我們可以不用寫return柬批,但是有個前提是后面的邏輯必須只有一句話,還得有返回值
8.4.3 {$0 > $1}
8.4.4 > 直接這樣寫也可以,大于號代表著一個函數(shù)氮帐,而不是僅僅是個操作符而已锻霎。
8.5 trailing closure 尾隨閉包。在參數(shù)列表后面直接寫閉包揪漩。
var arr = [2,1,9,8,7,0,12,289,290,32,23,190] arr = sorted(arr){return $0>$1}
8.6捕獲值 在其定義的上下文中捕獲常量和變量旋恼,而且可以改變變量的值。
var arr = [2,1,9,8,7,0,12,289,290,32,23,190] var num = 9 arr = sorted(arr){num = 7;return $0-num > $1-num } println("num is \(num)")
最后num被改為7
8.7 非常重要的一點奄容,閉包是引用類型冰更。

9值類型和引用類型
9.1值類型:Int Float String Array Dictionary Tuple Bool
9.2引用類型:function closure
9.3 swift 沒有指針類型,引用的類型就是指向地址

10類
10.1 構(gòu)造函數(shù)
10.2 析構(gòu)函數(shù) deinit
10.3 類的繼承 會繼承構(gòu)造函數(shù)昂勒,屬性蜀细,方法
10.4 不能重寫的需要關(guān)鍵字:@final

11結(jié)構(gòu)體
11.1結(jié)構(gòu)體與類的相同和不同
相同:

1.都有變量和函數(shù)
2.都可以使用協(xié)議
3.都可以使用內(nèi)部下標(biāo)方式讀取屬性
4.都有初始化函數(shù)

不同:

1.類有繼承
2.類可以多重引用
3.類有析構(gòu)函數(shù),結(jié)構(gòu)體沒有
4.結(jié)構(gòu)體是值類型戈盈,類是引用類型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奠衔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子塘娶,更是在濱河造成了極大的恐慌归斤,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刁岸,死亡現(xiàn)場離奇詭異脏里,居然都是意外死亡,警方通過查閱死者的電腦和手機虹曙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門迫横,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酝碳,你說我怎么就攤上這事矾踱。” “怎么了疏哗?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵呛讲,是天一觀的道長。 經(jīng)常有香客問我沃斤,道長圣蝎,這世上最難降的妖魔是什么刃宵? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任衡瓶,我火速辦了婚禮,結(jié)果婚禮上牲证,老公的妹妹穿的比我還像新娘哮针。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布十厢。 她就那樣靜靜地躺著等太,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛮放。 梳的紋絲不亂的頭發(fā)上缩抡,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音包颁,去河邊找鬼瞻想。 笑死,一個胖子當(dāng)著我的面吹牛娩嚼,可吹牛的內(nèi)容都是我干的蘑险。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岳悟,長吁一口氣:“原來是場噩夢啊……” “哼佃迄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贵少,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤呵俏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后滔灶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柴信,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年随常,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萄涯。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绪氛,死狀恐怖涝影,靈堂內(nèi)的尸體忽然破棺而出枣察,到底是詐尸還是另有隱情燃逻,我是刑警寧澤序目,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布伯襟,位于F島的核電站,受9級特大地震影響姆怪,放射性物質(zhì)發(fā)生泄漏叛赚。R本人自食惡果不足惜澡绩,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一俺附、第九天 我趴在偏房一處隱蔽的房頂上張望肥卡。 院中可真熱鬧,春花似錦步鉴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沮稚。三九已至艺沼,卻和暖如春蕴掏,著一層夾襖步出監(jiān)牢的瞬間障般,已是汗流浹背盛杰。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工挽荡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留即供,地道東北人定拟。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓逗嫡,卻偏偏與公主長得像青自,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子驱证,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

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