Swift學(xué)習(xí)筆記(結(jié)合代碼锨络,實(shí)踐Tips)---Day1

//================Demo1--Day1=================

/**

*1.常量變量

*/

varstr ="Hello, playground"

print(str)

varmyStr ="Hello,Word"

myStr="王云鵬根欧,你好啊"

letyourStr ="你是常量啊"http://常量不可以修改的

print(myStr)

/**

*2.類型推斷

*/

varint1 =9

//int1 = 10.0這樣的話會報錯赞别,因?yàn)橹耙呀?jīng)判斷int1是整型了

//賦值的時候直接給定類型變量后面聲明類型焦履,用冒號分割贸典。

letint2:Int=9

//創(chuàng)建一個常量视卢,顯式指定類型為Float并指定初始值為4。

letpractiseNumber:Float=4

/**

*3.類型轉(zhuǎn)換

*/

//值永遠(yuǎn)不會被隱式轉(zhuǎn)換為其他類型廊驼。如果你需要把一個值轉(zhuǎn)換成其他類型据过,請顯式轉(zhuǎn)換。

varlabel1 ="The width is"

varwidth=100

//var widthLabel1 = label1 + width這樣會報錯妒挎,因?yàn)閮烧哳愋筒唤y(tǒng)一绳锅,可以轉(zhuǎn)換下

//轉(zhuǎn)換的方式和OC不一樣。括號里面放的是被轉(zhuǎn)換的變量酝掩,類型不加括號

varwidthLabel1 =label1+String(width)

//練習(xí)

varwidth2 =200

//width2 = 1.0現(xiàn)在是不支持float的轉(zhuǎn)換下

varwidth3 =Float(width2)

//width3此時已經(jīng)是float類型的了

letthree =3

letpointOneFourOneFiveNine =0.14159

letpi =three+Int(pointOneFourOneFiveNine)

//有一種更簡單的把值轉(zhuǎn)換成字符串的方法:把值寫到括號中鳞芙,并且在括號之前寫一個反斜杠

varnum1 =12.00

varnum2 =13.00

varnum3:Int=Int(num1+num2)//這樣寫也是可以的,嘿嘿期虾,多多嘗試

//練習(xí):使用\()來把一個浮點(diǎn)計算轉(zhuǎn)換成字符串原朝,并加上某人的名字,和他打個招呼镶苞。

print("你好,\(num1+num2)")

/**

*4.使用方括號[]來創(chuàng)建數(shù)組和字典喳坠,并使用下標(biāo)或者鍵(key)來訪問元素。

*/

//數(shù)組

vararr1 = ["a","b","c","d"]

varnumStr =arr1[2]

print(arr1)

//字典

vardic1 = ["我的名字":"王云鵬",

"你的名字":"毛艷艷"]

varvalueMe =dic1["我的名字"]

varvalueYou =dic1["你的名字"]

varoccupations = [

"Malcolm":"Captain",

"Kaylee":"Mechanic",

]

occupations["Jayne"] ="Public Relations"http://這也算是一個鍵值對的賦值茂蚓,類似于一個插入新的key-value的作用但是好像順序不是按照后來的在后面的順序壕鹉,最后這個怎么在了中間剃幌??難道那個語法是起插入作用么晾浴?锥忿?

print(occupations)

//要創(chuàng)建一個空數(shù)組或者字典,使用初始化語法怠肋。

vararr2 = []//這不也是創(chuàng)建一個空數(shù)組么敬鬓??為什么要使用初始化語法呢?答案在下面

vartemptyArr1 = [String]()//初始化一個空的字符串?dāng)?shù)組

vartemptyArr2 = [Int]()//初始化一個空的整型數(shù)組

//初始化字典

letemptyDictionary = [String:Float]()

//如果類型信息可以被推斷出來笙各,你可以用[]和[:]來創(chuàng)建空數(shù)組和空字典——就像你聲明變量或者給函數(shù)傳參數(shù)的時候一樣钉答。

vararr3NoItem = []

vardic1NoItem = [:]

/**

*5.控制流使用if和switch來進(jìn)行條件操作,使用for-in杈抢、for数尿、while和do-while來進(jìn)行循環(huán)。包裹條件和循環(huán)變量括號可以省略惶楼,但是語句體的大括號是必須的右蹦。

*/

vararr3 = [12,13,14,15,16]

arr3.insert(17, atIndex:arr3.count)//插入一個

varteamScore =0

//快速枚舉forIn遍歷

forscoreinarr3{

ifscore >13{

teamScore+=3

}else{

}

}

print(teamScore)

//在if語句中,條件必須是一個布爾表達(dá)式——這意味著像if score { ... }這樣的代碼將報錯歼捐,而不會隱形地與0做對比何陆。你可以一起使用if和let來處理值缺失的情況。有些變量的值是可選的豹储。一個可選的值可能是一個具體的值或者是nil贷盲,表示值缺失。在類型后面加一個問號來標(biāo)記這個變量的值是可選的剥扣。

//可選的巩剖,等于說是雙份,不賦值的時候它就是個nil注意钠怯?一定要緊跟著類型佳魔,中間不要留空格,否則會報錯

varoptionString1 :String? ="Hello"

print(optionString1=nil)

varoptionString2 :String?//這時候它就是個nil

//練習(xí)

varoptionName :String? ="王云鵬"

vargreeting ="hello"

ifletname =optionName{//這時候name有值了晦炊,表示條件為真啊

greeting="hello,\(greeting)"

}

//練習(xí)把optionalName改成nil鞠鲜,greeting會是什么?添加一個else語句刽锤,當(dāng)optionalName是nil時給greeting賦一個不同的值镊尺。

varoptionName1 :String?

vargreeting1 ="hello"

ifletname1 =optionName1{//無值。缺省為Nil

greeting="hello,\(greeting1)"

}else{

greeting="hello,\(greeting1)"

}

//switch貌似OC里面的switch只能比較各整型好像swift里面的switch支持任意類型的數(shù)據(jù)以及各種比較操作——不僅僅是整數(shù)以及測試相等并思。

letvegetable ="red papper"

switchvegetable{

case"red":

print("匹配錯誤")

case"paper":

print("照樣匹配錯誤")

case"red papper":

print("匹配正確")//匹配到的是這個

default:

print("匹配的亂七八糟")

}

//Tips:運(yùn)行switch中匹配到的子句之后庐氮,程序會退出switch語句,并不會繼續(xù)向下運(yùn)行宋彼,所以不需要在每個子句結(jié)尾寫break弄砍。

//你可以使用for-in來遍歷字典仙畦,需要兩個變量來表示每個鍵值對。字典是一個無序的集合音婶,所以他們的鍵和值以任意順序迭代結(jié)束慨畸。

varfunStrings = ["key1":["我的","毛的"],"key2":["它的","她的","他的"],"key3":["你的","那個人的"]]

//快速枚舉

for(key,content)infunStrings{

ifkey =="key1"{//判斷兩個字符串是否相等。直接這樣等號判斷對么衣式?寸士?

print(content)

}elseifcontent.count==3{

print(key)

}

}

//使用while來重復(fù)運(yùn)行一段代碼直到不滿足條件。循環(huán)條件可以在開頭也可以在結(jié)尾碴卧。

varn =0

varsum =0

whilen<100{

n+=1

sum+=n

}

print(sum)

//for循環(huán)你可以在循環(huán)中使用..<來表示范圍弱卡,也可以使用傳統(tǒng)的寫法,兩者是等價的:

varn1 =0

forvari=0;i<5;++i{

n1+= i

}

print(n1)

varn2 =0

forqin0..<5{

n2+= q

}

print(n2)

/**

*函數(shù)和閉包使用func來聲明一個函數(shù)住册,使用名字和參數(shù)來調(diào)用函數(shù)婶博。使用->來指定函數(shù)返回值。

*無論是形參還是返回值荧飞,都是返回的變量名后面是冒號+類型

*/

//聲明函數(shù)

funcgreet(name:String,content:String) ->String{

return"Hello,\(name+content)"

}

//調(diào)用

varreturnValue:String=greet("王云鵬","給您請安了")

print(returnValue)

//使用元組來讓一個函數(shù)返回多個值凡人。該元組的元素可以用名稱或數(shù)字來表示。

//[Int]這樣表示傳進(jìn)去實(shí)參是個數(shù)組叹阔,只不過是個整型的挠轴,字符串型的自己琢磨

funccalculateStatistics(scores:[Int]) ->(min:Int,max:Int,sum:Int){

varmin = scores[0]

varmax = scores[0]

varsum =0

forscoreinscores {

ifscore > max {

max = score

}elseifscore < min {

min = score

}

sum += score

}

return(min, max, sum)

}

varitems =calculateStatistics([12,13,45,9,10])

print(items.sum)

print(items.2)

//函數(shù)可以帶有可變個數(shù)的參數(shù),這些參數(shù)在函數(shù)內(nèi)表現(xiàn)為數(shù)組的形式:

funcmaybeChange(values:Int...) ->Int{

varsum =0

forvalueinvalues{

sum += value

}

returnsum

}

maybeChange()

maybeChange(21,23,57)

//練習(xí)練習(xí):寫一個計算參數(shù)平均值的函數(shù)条获。

funcgetAverage(numbers:[Int]) ->Float{

varaverage =0

varsum =0

fornumberinnumbers{

sum += number

}

returnFloat(sum) /Float(numbers.count)

}

getAverage([1,2,3,4,5,6])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忠荞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子帅掘,更是在濱河造成了極大的恐慌,老刑警劉巖堂油,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件修档,死亡現(xiàn)場離奇詭異,居然都是意外死亡府框,警方通過查閱死者的電腦和手機(jī)吱窝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迫靖,“玉大人院峡,你說我怎么就攤上這事∠狄耍” “怎么了照激?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盹牧。 經(jīng)常有香客問我俩垃,道長励幼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任口柳,我火速辦了婚禮苹粟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘跃闹。我一直安慰自己嵌削,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布望艺。 她就那樣靜靜地躺著掷贾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荣茫。 梳的紋絲不亂的頭發(fā)上想帅,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音啡莉,去河邊找鬼港准。 笑死,一個胖子當(dāng)著我的面吹牛咧欣,可吹牛的內(nèi)容都是我干的浅缸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼魄咕,長吁一口氣:“原來是場噩夢啊……” “哼衩椒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哮兰,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤毛萌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后喝滞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阁将,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年右遭,在試婚紗的時候發(fā)現(xiàn)自己被綠了做盅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡窘哈,死狀恐怖吹榴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情滚婉,我是刑警寧澤图筹,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站满哪,受9級特大地震影響婿斥,放射性物質(zhì)發(fā)生泄漏劝篷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一民宿、第九天 我趴在偏房一處隱蔽的房頂上張望娇妓。 院中可真熱鬧,春花似錦活鹰、人聲如沸哈恰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽着绷。三九已至,卻和暖如春锌云,著一層夾襖步出監(jiān)牢的瞬間荠医,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工桑涎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彬向,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓攻冷,卻偏偏與公主長得像娃胆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子等曼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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