簡(jiǎn)介

  • 特點(diǎn)
    (1)優(yōu)于OC,快速,安全
    (2)取消了預(yù)編譯指令包括宏定義(OC用的太多了)
    (3)取消了OC指針和不安全訪(fǎng)問(wèn)的使用(看不到星星了)
    (4)舍棄 Objective-C 早期應(yīng)用 Smalltalk 的語(yǔ)法,全面改為點(diǎn)語(yǔ)法
    (5)3.0中對(duì)Foundation框架做了很多改變,去除了NS,將絕大部分class轉(zhuǎn)換成struct結(jié)構(gòu)體(為了考慮性能和安全性,絕大部分使用結(jié)構(gòu)體來(lái)代替以前的類(lèi),但是在實(shí)際使用感覺(jué)不到)
    (6)可以使用現(xiàn)有的 Cocoa 和 Cocoa Touch 框架
    , 以前是OC調(diào)UIKit,現(xiàn)在就是Swift調(diào)UIKit,這點(diǎn)事沒(méi)問(wèn)題的
    (7)Swift因?yàn)檎Z(yǔ)法的嚴(yán)謹(jǐn)性可以讓很多錯(cuò)誤提前遇到,這樣很少出現(xiàn)bug讓程序停在main導(dǎo)致無(wú)法找到
    (8)@UIApplicationMain是程序的入口
    (9)只有.h沒(méi)有.m
    (10)所有的代碼都包括在{}里,默認(rèn)方法func都有縮進(jìn)!
    (11)語(yǔ)法的allocinit替換成()

  • PlayGround
    (1)可以看蘋(píng)果官方自帶的tips和100個(gè)tips,都在Placground來(lái)使用

  • 基礎(chǔ)點(diǎn)
    (1)不適用self. 在閉包或者編譯器提示的時(shí)候再使用
    (2)分號(hào)是用來(lái)分割語(yǔ)句的,如果一行洗很多,就可以加分號(hào),一般時(shí)候可以不加
    (3)#function打印執(zhí)行的函數(shù)
    (4)添加標(biāo)記用到// MARK: - 選擇,如果是接下來(lái)要做的可以用// TODO:和// FIXME:這些非常有用

一、常量和變量

定義

  • let 定義常量,一經(jīng)賦值不允許再修改

  • var 定義變量,賦值之后仍然可以修改
    常量和變量的細(xì)節(jié)

  • 使用 : 類(lèi)型,僅僅只定義類(lèi)型

  • 常量有一次設(shè)置的機(jī)會(huì)

  • 應(yīng)該盡量先選擇常量,只有在必須修改時(shí),才需要修改為 var

// 定義常量并且直接設(shè)置數(shù)值let x: Int = 10// 常量數(shù)值一經(jīng)設(shè)置,不能修改,以下代碼會(huì)報(bào)錯(cuò)// x = 30let y: Int// 常量有一次設(shè)置的機(jī)會(huì),以下代碼沒(méi)有問(wèn)題,因?yàn)?nbsp;`y` 還沒(méi)有被設(shè)置數(shù)值y = 10// 一旦設(shè)置之后,則不能再次修改,以下代碼會(huì)報(bào)錯(cuò),因?yàn)?nbsp;`y` 已經(jīng)被設(shè)置了數(shù)值// y = 50print(x + y)// 變量設(shè)置數(shù)值之后,可以繼續(xù)修改數(shù)值var z: Intz = 100z = 200print(x + y + z)

自動(dòng)推導(dǎo)

Swift 能夠根據(jù)右邊的代碼,推導(dǎo)出變量的準(zhǔn)確類(lèi)型
只有相同類(lèi)型的值才能夠進(jìn)行運(yùn)算

// 整數(shù)默認(rèn)的類(lèi)型是 Intlet intValue = 200// 小數(shù)的默認(rèn)類(lèi)型是 Doublelet doubleValue = 10.5// 如果要對(duì)不同類(lèi)型的數(shù)據(jù)進(jìn)行計(jì)算,必須要顯式的轉(zhuǎn)換print(intValue + Int(doubleValue
        
		

網(wǎng)友評(píng)論