swift語法基礎(chǔ)

Swift敷搪,蘋果于2014年WWDC(蘋果開發(fā)者大會)發(fā)布的新開發(fā)語言,可與Objective-C*共同運(yùn)行于Mac OS和iOS平臺潜索,用于搭建基于蘋果平臺的應(yīng)用程序抢野。Swift是一款易學(xué)易用的編程語言,而且它還是第一套具有與腳本語言同樣的表現(xiàn)力和趣味性的系統(tǒng)編程語言。Swift的設(shè)計以安全為出發(fā)點(diǎn)逛裤,以避免各種常見的編程錯誤類別瘩绒,下面我以代碼的形式向大家介紹一下swift的基礎(chǔ)語法

“//

//? main.swift

//? Swift語法

//

//? Created by lanou on 16/7/21.

//? Copyright ? 2016年 Huangyu. All rights reserved.

//

import Foundation

print("Hello, World!")

//Int Float

let a:Int = 12

// let var

let str = "hello"

//str.characters.count

//str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)

//大小寫轉(zhuǎn)換

//str.uppercaseString

//str.lowercaseString

//==

//"123\(str)4555"

let str2 = String(format: "%02d:%02d", 1,2)

let str3 = String(format: "%02d:%02d", arguments: [1,2])

print(str2)

print(str3)

//str2.substringToIndex(<#T##index: Index##Index#>)

//字符串的其他操作全部轉(zhuǎn)化為NSString再去操作

//轉(zhuǎn)換

let str4:NSString = str2 as NSString

//數(shù)組 Array

let array1 = ["A", "2", "3", "4"]

//initWith/init在swift里面轉(zhuǎn)化成()

let array2 = [String]()

//元素個數(shù).count

//數(shù)組遍歷 for-in (明確的指出數(shù)組的類型)

for temp in array1 as [String]{

print(temp.characters.count)

}

//元組遍歷

for (index, value) in array1.enumerate()

{

print("index = \(index),value = \(value)")

}

//可變數(shù)組

var mutableArray = [String]()

mutableArray.append("hello")

mutableArray.append("world")

//mutableArray.append(23)

print(mutableArray)

mutableArray.removeFirst(1)

print(mutableArray)

mutableArray.removeAll()

print(mutableArray)

//字典 Dictionary

let dict = ["key1":"value1", "key2":"value2", "key3":"value3"]

print(dict)

//通過Key值訪問value值

print(dict["key1"])

//for - in

for (tempkey, tempvalue) in dict.enumerate()

{

print("key = \(tempkey), value = \(tempkey)")

}

//可變字典

var dict3 = ["key":"value"]

//合并

for (tempkey, tempvalue) in dict

{

// 如果key存在的則是一個更新的鍵值對操作, 否則就是一個增加鍵值對操作

dict3[tempkey] = tempvalue

}

print(dict3)

//如果一個值可能為nil带族, 那么這個值就是可選類型锁荔, 用?標(biāo)識

//Optional包圍的就是一個可選類型

//可選類型不能直接使用蝙砌, 必須強(qiáng)制解包? 阳堕!制解包,對nil強(qiáng)制解包會造成崩潰

var? a1:String?

a1 = "12345"

print(a1!.characters.count)

//(a2 ?? "234")對可選類型進(jìn)行判斷, 如果可選類型值為nil择克, 則給它一個默認(rèn)值

var? a2:String?

a2 = "12345"

print(a2 ?? "234".characters.count)

//if 條件語句()可以省略 {}不能省略

//if沒有非零即真的概念恬总, 只有true false的兩種概念

let tempvalue = 10;

if tempvalue > 5{

print("tempvalue > 5")

}

//可選類型的條件分支

let str5:String? = "hello"

//(1)if-let是對可選類型的判斷, 如果可選類型為nil, 則不執(zhí)行代碼塊肚邢, 如果不為空則用tempStr來接收此刻這個可選類型的解包后的值

if let tempStr = str5{

print(tempStr)

}

//(2)if-let-where 跟 if-let相似壹堰, where是對前面定義的這個局部變量再做一層判斷

if let tempStr = str5 where tempStr.characters.count > 2{

print("tempStr.length = \(tempStr.characters.count)")

}

//guard - let -else()

//如果可選類型str為nil, 則執(zhí)行code代碼塊, 最后一定要return, 如果不為nil則強(qiáng)制解包后的值賦值給tempStr骡湖,這樣在 {}外面就可以使用tempStr

/*

guard let tempStr = str else {

code

return

}

tempStr...

*/

/*

//switch 不局限判斷整型贱纠, 可以是浮點(diǎn)型,也可以是字符串勺鸦。并巍。。switch后面的小掛號可以省略换途, 大號不能省略 case后面至少要執(zhí)行語句0枚伞!并且case后面的大號可以省略军拟, break可以不寫剃执, 不會造成貫穿 default一定要寫, 并且只能寫在后面

let f = 3.2

switch f {

case 3.0:

print("===3.0")

case 3.1:

print("===3.1")

case 3.2:

print("3.2")

default:

print("unknow")

}

*/

for i in 0 ..< 5 {//0..<5------[0,5)? 0.....5----[0,5]

print("i = \(i)")

}

//枚舉(枚舉值可以關(guān)聯(lián)浮點(diǎn)懈息, 字符串, 沒有默認(rèn)的關(guān)聯(lián)值)

//關(guān)聯(lián)如果是Int肾档, 會默認(rèn)的遞增上去, 如果不是Int辫继, 必須每個枚舉值都關(guān)聯(lián)上對應(yīng)的值

enum Month:Float{

case January = 11.2

case February = 11.3

case March = 13.2

case April = 13.6

}

//如果明確指出一個變量/常量是屬于哪種枚舉類型的話怒见, 可以直接.枚舉值賦值, 否則就 枚舉類型.枚舉值

let month:Month = .January

var month1 = Month.January

month1 = .February

switch month{

case.January:

print("hashValue = \(month.hashValue), rawValue = \(month.rawValue)")

case.February:

print(month)

case.March:

print(month)

case.April:

print(month)

}”

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姑宽,一起剝皮案震驚了整個濱河市遣耍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炮车,老刑警劉巖舵变,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酣溃,死亡現(xiàn)場離奇詭異,居然都是意外死亡纪隙,警方通過查閱死者的電腦和手機(jī)赊豌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绵咱,“玉大人碘饼,你說我怎么就攤上這事◆镏簦” “怎么了派昧?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拢切。 經(jīng)常有香客問我蒂萎,道長,這世上最難降的妖魔是什么淮椰? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任五慈,我火速辦了婚禮,結(jié)果婚禮上主穗,老公的妹妹穿的比我還像新娘泻拦。我一直安慰自己,他們只是感情好忽媒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布争拐。 她就那樣靜靜地躺著,像睡著了一般晦雨。 火紅的嫁衣襯著肌膚如雪架曹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天闹瞧,我揣著相機(jī)與錄音绑雄,去河邊找鬼。 笑死奥邮,一個胖子當(dāng)著我的面吹牛万牺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播洽腺,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脚粟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蘸朋?” 一聲冷哼從身側(cè)響起珊楼,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎度液,沒想到半個月后厕宗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堕担,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年搓谆,在試婚紗的時候發(fā)現(xiàn)自己被綠了酸员。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖躯护,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情债热,我是刑警寧澤形真,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站贞奋,受9級特大地震影響赌厅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜轿塔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一特愿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勾缭,春花似錦揍障、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幻梯,卻和暖如春兜畸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背礼旅。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工膳叨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人痘系。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓菲嘴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親汰翠。 傳聞我的和親對象是個殘疾皇子龄坪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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