Swift學(xué)習(xí)筆記(一)

2010 年的夏天俩垃,蘋果公司的開發(fā)人員 Chris Lattne 接到了一個特別的任務(wù),為 OS X 和 iOS 平臺開發(fā)下一代的編程語言汰寓,也就是 Swift口柳。

從今天開始有滑,學(xué)習(xí)一些 Swift 語法,下面從基本語句開始毛好。

1、變量和常量

  • 在 Swift 中使用 "let" 修飾一個常量找默,使用 "var" 修飾一個變量
  • let 修飾常量的值是不可以更改
  • var 修飾的變量的值是可以更改
  • 在聲明常量和變量的時候可以使用表情符號吼驶、中文等命名常量名和變量名
//  輸出語句
print("Hello, World!")

//  使用 let 定義一個常量, 不能重新賦值
//  Swift 支持隱式類型推斷, 可以根據(jù)初值, 自動的判斷 Swift 的數(shù)據(jù)類型
let a = 10
let b : String = "nihao"
let c = 20.1
let 遲到的 = "做俯臥撐"
let  = "哭"

//  Swift 不支持隱式類型轉(zhuǎn)換, 不能讓兩個不一樣的數(shù)據(jù)類型做四則運(yùn)算
//  Swift 強(qiáng)轉(zhuǎn)的格式: 數(shù)據(jù)類型 (需要強(qiáng)轉(zhuǎn)的數(shù)據(jù))
let d = Double(a) + c

//  Swift 里面使用 var 定義一個變量
var a = 10
a = 100

//  如果需要定義一個初值為 nil 的變量的話, 格式: var + 變量名 + ":" + 變量類型? = nil
var b : String? = nil   //  拆包

2、數(shù)組和字典

  • 在 Swift 中使用 "let" 或者 "var" 聲明一個數(shù)組或者字典
  • 數(shù)組必須指定數(shù)據(jù)類型旨剥,如果沒有指定類型則會根據(jù)數(shù)組的初值去推斷數(shù)據(jù)類型
  • 字典所有的 key 值必須是同一數(shù)據(jù)類型
  • 字典所有的 value 必須是同一數(shù)據(jù)類型

1)轨帜、數(shù)組:

/****************** 數(shù)組 ******************/
//  Swift 數(shù)組里面的數(shù)據(jù)類型必須是一樣的
let array = [1, 2, 3, "a"]  //  AnyObject(Swift 1.0), NSObject(Swift 2.0)

//  數(shù)組初始化的第二種方式, 先指定數(shù)據(jù)類型
let array_01 : [Int] = [1, 2, 4]    //  元素只能是 Int 類型的

//  定義一個空的數(shù)組
let array_02 : [Int] = []

var array = [1, 2, 3, 4, 5]
//  數(shù)組的增, 刪, 改, 查
//  數(shù)組的查
print(array[1])

//  插入一條數(shù)據(jù)
array.insert(10, atIndex: 2)
print(array)
//  在某個位置插入一個新的數(shù)組
var array_01 = [10, 11, 12, 13, 14]
array.insertContentsOf(array_01, at: 2)
print(array)

//  數(shù)組的刪
//  刪除數(shù)組的同時, 保存內(nèi)存空間
//  Swift 里面的 Bool 是一個枚舉, 只有 true 和 false 兩種參數(shù)
array.removeAll(keepCapacity: true)
print(array)

let range = Range(start:0, end:2)
array.removeRange(range)
print(array)

//  數(shù)組的改
array[1] = 10
print(array)

var array_02 = [6, 7, 8, 9, 10]
var array_03 = array + array_02 // 運(yùn)算符的重載
print( "array:",array_03)

2)、字典:

/****************** 字典 ******************/
//  創(chuàng)建字典的兩種方式, Swift 1.0 這種方法不存在
let dictionary = [1:2, 3:4, "a":"b"]
let dicitonary_01 : [Int : String] = [1:"a", 2:"b"] //  Swift 的字典里面, 所有的 Key, Value 都必須是同一種類型

var dictionary = [1:2, 3:4, 5:6]
print(dictionary)

//  當(dāng)修改字典并不存在的值得時候, 相當(dāng)與給這字典增加元素
dictionary[7] = 8
print(dictionary)

dictionary[1] = 100
print(dictionary)

dictionary.removeValueForKey(1)
print(dictionary)
print(dictionary[3])

3哮兰、元組

  • 元組是 Swift 里面獨(dú)有的一種數(shù)據(jù)格式
  • 是一個可以返回多個值的數(shù)據(jù)格式
  • 在 Swift 里面聲明的時候使用 "()" 聲明
  • 元組可以通過下標(biāo)去訪問元素苟弛,也可以通過 key 值去訪問元素
  • 整體的數(shù)據(jù)結(jié)構(gòu)有點(diǎn)類似于 C 語言里面的結(jié)構(gòu)體
/****************** 元組 ******************/
//  使用 () 表示定義一個元祖, 元祖里面沒有數(shù)據(jù)類型的概念
let type = ("羅峰", "DHM")
//  訪問元組的第一個方法
print(type.0)

let type_01 : (name:String, nickName:String) = type
print(type_01.name)

4、循環(huán)結(jié)構(gòu)

  • Swift 里面的循環(huán)結(jié)構(gòu)包含:for右遭、for-in、while窘哈、repeat-while
/****************** 數(shù)組遍歷 ******************/
//  for 循環(huán)
let array = [1, 2, 3, 4, 5]
for var i = 0; i < array.count; i++ {
    print("i = \\(i)")
}

var i = 0
while i < 10 {
    i++
    print(i)
}

//  repeat while 和 do while 一樣
//  Swift 1.0 的時候叫做 do while, Swift 2.0 的時候叫做 repeat while
repeat {
i++
print(i)
}while i < 10

//  for in 循環(huán)
let array = [1, 2, 3, 4, 5]
for var a in array {
    print(a)
}

5、分支結(jié)構(gòu)

  • Swift 里面的分支結(jié)構(gòu)包含:if图筹、if-else
var timer : String? = nil
if timer != nil {
    print("timer 存在")
} else {
    print("timer 不存在")
}

let value = 0
switch value {
case 0:
    print(value)
case 1:
    print(value)
default:
    print("超了")
}

//  0...10 表示的是 從 0 到 10 (包含10)
//  0..<10 表示的是不包括10
switch value {
case 0...10:
    print(value)
case 11...20:
    print(value)
default:
    print("又超了")
}

let point = (10, 10)
switch point {
case (10, 10):
    print(point)
case (_, 10):
    print(point.0)
case (10, _):
    print(point.1)
case (_, _):
    print(point)
}

let value = 0
let value_01 = 100
switch value {
case 0 where value_01 < 10:
    print(value)
case 0 where value_01 > 10:
    print("正確")
default:
    print("錯誤")
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末远剩,一起剝皮案震驚了整個濱河市骇窍,隨后出現(xiàn)的幾起案子民宿,更是在濱河造成了極大的恐慌像鸡,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件志群,死亡現(xiàn)場離奇詭異蛔钙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吁脱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攻冷,“玉大人遍希,你說我怎么就攤上這事≡渌猓” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵州泊,是天一觀的道長漂洋。 經(jīng)常有香客問我力喷,道長,這世上最難降的妖魔是什么冗懦? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任仇祭,我火速辦了婚禮颈畸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘眯娱。我一直安慰自己,他們只是感情好试伙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布于样。 她就那樣靜靜地躺著,像睡著了一般穿剖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秀又,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天贬芥,我揣著相機(jī)與錄音,去河邊找鬼蘸劈。 笑死,一個胖子當(dāng)著我的面吹牛捷雕,可吹牛的內(nèi)容都是我干的壹甥。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼浦译,長吁一口氣:“原來是場噩夢啊……” “哼棒假!你這毒婦竟也來了精盅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤妻枕,失蹤者是張志新(化名)和其女友劉穎粘驰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝌数,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顶伞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了唆貌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡众羡,死狀恐怖蓖租,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蓖宦,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布柠偶,位于F島的核電站睬关,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏电爹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一摇邦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧施籍,春花似錦、人聲如沸丑慎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铛绰。三九已至产喉,卻和暖如春捂掰,著一層夾襖步出監(jiān)牢的瞬間曾沈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工姐帚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留障涯,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓唯蝶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鼓蜒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

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