Swift第二課

一.字符串

  • 在OC中字符串類型是NSString,在swift中字符串類型是String
  • OC中字符串@"",swift中字符串""

String特點(diǎn)

  • String 是一個(gè)結(jié)構(gòu)體,性能更高
  • NSString 是一個(gè)oc 對(duì)象,性能略差
  • String 支持直接遍歷
  • swift提供了string和nsstring 之間的無(wú)縫轉(zhuǎn)換

遍歷字符串

var str = "Hello, playground"

for c in str.characters{
    print(c)
}

字符串的拼接

let str3 = str1 + str2

字符串與其他標(biāo)識(shí)符的拼接

let name = "cy"
let age = 16
let height = 165
let info = "my name is \(name),my age is \(age),my height is \(height)"

字符串的格式化

let min = 30
let second = 21
let time = String(format: "%02d:%02d", arguments: [min,second])

字符串截取

let min = 30
let second = 21

let time = String(format: "%02d:%02d", arguments: [min,second])
let webAddress = "www.baidu.com"
let head = (webAddress as NSString).substring(to: 3)
let middle = (webAddress as NSString).substring(with: NSMakeRange(4, 5))
let footer = (webAddress as NSString).substring(from: 10)

二. 數(shù)組

  • 數(shù)組是一串有序的由相同類型元素構(gòu)成的集合
  • 數(shù)組中的集合元素是有序的,可以重復(fù)出現(xiàn)
  • swift中數(shù)組類型是array, 是一個(gè)泛型集合

數(shù)組初始化

定義不可變數(shù)組

let array = ["why","yz"]

定義可變數(shù)組

var array = [String]()
//var array = Array<String>()(不常用)

可變數(shù)組的基本操作

//定義一個(gè)數(shù)組
var array = [String]()
//var array = Array<String>()(不常用)

//添加新元素
array.append("hahha")
array.append("eafe")
array.append("ewae")

//取出數(shù)組中元素
array[1]

//刪除數(shù)組某個(gè)元素
array.remove(at: 0)

//修改數(shù)組中某個(gè)元素
array[0] = "ssss"

數(shù)組的遍歷

array
//1.根據(jù)下標(biāo)值遍歷
for i in 0..<array.count {
    print(array[i])
}
//2.直接遍歷數(shù)組中的元素
for item in array {
    print(item)
}
//遍歷數(shù)組前兩個(gè)元素
for i in 0..<2 {
    print(array[i])
}
for item in array[0..<2] {
    print(item)
}

數(shù)組的合并

注:相同類型的數(shù)組才可以進(jìn)行合并,不同類型不能相加合并

let array1 = ["hha","en","heng"]
let array2 = [123,124,456,789]

array1 與array2是不能合并的, array1 可以與之前提到的元素為string類型的array合并相加

三. 字典

定義

  • 定義不可變字典使用let 修飾
let dict = ["name":"cy","age":20,"height":165]
  • 定義可變字典:使用var修飾
var dictM = Dictionary<String, NSObject>()

AnyObject: 一般指定類型 NSObject: 一般用于創(chuàng)建對(duì)象 所以,亦可以寫(xiě)成:

var dictM = [String,AnyObject]()

可變字典的操作

添加元素

var dictM = [String, AnyObject]()
dictM["name"] = "chenyan"
dictM["age"] = 16
dictM["height"] = 165
dictM["weight"] = 45

刪除元素

dictM.removeValueForKey("weight")

修改元素

dictM["height"] = 170

遍歷字典

for key in dictM.keys {
    print(key)
}

for value in dictM.values {
    print(value)
}

for (key, value ) in dictM {
    print(key)
    print(value)
}

  • 字典不能合并,即使類型一致也不能相加合并
  • 但是可以通過(guò)遍歷其中一個(gè)字典 ,把這個(gè)字典中的key 和value 添加到另一個(gè)字典中

四.元組

元組: 理解為元素的組合(一般用于作為方法的返回值)

元組基本寫(xiě)法

let info = ("cy",16,1.65)
//取值
info.0
info.1

可以給元組中的每個(gè)元素起別名

let info = (name :"cy",age : 16,height : 1.65)
//取值
info.name
info.age
info.height


//也可以這樣寫(xiě)

let (name,age,height) = ("cy",16,1.65)
//取值
name
age
height

五.可選類型

因?yàn)閟wift是強(qiáng)類型語(yǔ)言,nil 在swift中也是一個(gè)特殊的類型,所以如果我們需要有一個(gè)變量暫時(shí)不用賦值為nil 是不可以的 ,所以就推出了可選類型

  • ( swift 規(guī)定 : 對(duì)象中的任何屬性在創(chuàng)建對(duì)象時(shí) ,都必須有明確的初始化值)

定義可選類型

方式一 :常規(guī)方式(不常用)

var name : Optional<String> = nil

方式二 :語(yǔ)法糖(常用)

var name : String? = nil

賦值

name = "chenyan"

取值

  • 取出可選類型中的值可以對(duì)可選類型進(jìn)行強(qiáng)制解包 : 可選類型 + !
  • 但是強(qiáng)制解包是非常危險(xiǎn)的操作 ,如果可選類型為nil ,這樣強(qiáng)制解包系統(tǒng)就會(huì)崩掉 ,所以要記住在強(qiáng)制解包前要先進(jìn)行判斷是否為nil
if name != nil {
    print(name!)
}

這種判斷可以用到可選類型的另一個(gè)概念 : 可選綁定

if let tempName = name {
    print(tempName)
}
  • 判斷name是否有值 ,如果沒(méi)有值 ,不執(zhí)行操作
  • 如果name有值 ,系統(tǒng)會(huì)自動(dòng)將name進(jìn)行解包 ,并且將解包后的結(jié)果 ,賦值給tempName

常用寫(xiě)法

if let name = name {
    print(name)
}

六.函數(shù)

//1.沒(méi)有參數(shù)沒(méi)有返回值
func about() -> Void {

}
about()

func about1() {

}
about1()

//2.沒(méi)有參數(shù)有返回值

func read() -> String {
    return "人丑就要多讀書(shū)"
}
print(read ())

//3.有參數(shù)有返回值

func callPhone(phoneNum : String) -> String{
    return "打電話給 +86 " + phoneNum
}
print(callPhone("1388888888"))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凡壤,一起剝皮案震驚了整個(gè)濱河市搞旭,隨后出現(xiàn)的幾起案子焰枢,更是在濱河造成了極大的恐慌筑公,老刑警劉巖犁河,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異局劲,居然都是意外死亡仅偎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)近刘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)擒贸,“玉大人,你說(shuō)我怎么就攤上這事跌宛⌒锼危” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵疆拘,是天一觀的道長(zhǎng)蜕猫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)哎迄,這世上最難降的妖魔是什么回右? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮漱挚,結(jié)果婚禮上翔烁,老公的妹妹穿的比我還像新娘。我一直安慰自己旨涝,他們只是感情好蹬屹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著白华,像睡著了一般慨默。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弧腥,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天厦取,我揣著相機(jī)與錄音,去河邊找鬼管搪。 笑死虾攻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的更鲁。 我是一名探鬼主播霎箍,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼澡为!你這毒婦竟也來(lái)了漂坏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎樊拓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體塘慕,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡筋夏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了图呢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片条篷。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蛤织,靈堂內(nèi)的尸體忽然破棺而出赴叹,到底是詐尸還是另有隱情,我是刑警寧澤指蚜,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布乞巧,位于F島的核電站,受9級(jí)特大地震影響摊鸡,放射性物質(zhì)發(fā)生泄漏绽媒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一免猾、第九天 我趴在偏房一處隱蔽的房頂上張望是辕。 院中可真熱鬧,春花似錦猎提、人聲如沸获三。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疙教。三九已至,卻和暖如春蚓炬,著一層夾襖步出監(jiān)牢的瞬間松逊,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工肯夏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留经宏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓驯击,卻偏偏與公主長(zhǎng)得像烁兰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子徊都,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,805評(píng)論 1 10
  • Swift 介紹 簡(jiǎn)介 Swift 語(yǔ)言由蘋(píng)果公司在 2014 年推出沪斟,用來(lái)撰寫(xiě) OS X 和 iOS 應(yīng)用程序 ...
    大L君閱讀 3,211評(píng)論 3 25
  • 53.計(jì)算字符 在字符串中獲取字符值的數(shù)量, 可以使用字符串字符屬性中的計(jì)數(shù)屬性: let unusualMena...
    無(wú)灃閱讀 1,091評(píng)論 0 4
  • 關(guān)于 Swift 重要這個(gè)文檔所包含的準(zhǔn)備信息, 是關(guān)于開(kāi)發(fā)的 API 和技術(shù)的。這個(gè)信息可能會(huì)改變, 根據(jù)這個(gè)文...
    無(wú)灃閱讀 4,299評(píng)論 1 27
  • 多年之后,那個(gè)男孩的名字和模樣或許你早已忘記主之,但仍會(huì)記得陪在你身旁的那個(gè)女孩择吊。 嘿! 姑娘! 好久不見(jiàn)。 每個(gè)女孩...
    齊小sa閱讀 311評(píng)論 1 0