




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Swift基礎(chǔ):創(chuàng)建第一個(gè)Swift工程:Swift的基本語(yǔ)法
蘋(píng)果公司在今年的WWDC大會(huì)上,除了發(fā)布了iOS8和MaxOSX10.10之外,還發(fā)布了一個(gè)新的編程語(yǔ)言Swift。不得不說(shuō),Swift有較大的轉(zhuǎn)變,也使編程變得更加容易了,下面介紹了Swift的常量和變量的定義,基本控制語(yǔ)句的使用:需要注意的是:Swift只能在Xcode6Beta版中運(yùn)行,Xcode6目前最新的是Beta7,大家可以通過(guò)以下鏈接下載://Developer_Tools/xcode_6_beta_7_apzr94/xcode_6_beta_7.dmg
下載完成后打開(kāi)。一、創(chuàng)建第一個(gè)Swift工程:1.創(chuàng)建一個(gè)Swift工程:
如下圖所示,打開(kāi)Xcode6之后,會(huì)出現(xiàn)一個(gè)歡迎界面,選擇第二項(xiàng):CreateanewXcodeproject(創(chuàng)建一個(gè)新的Xcode工程)2.在Chooseatemplateforyournewproject:頁(yè)面,選擇OSX下面的Application,然后選擇選擇右面的CommandLineTool,然后點(diǎn)擊Next(如下圖所示):3.在Chooseoptionsforyournewproject:界面,第一個(gè)輸入工程名字,然后記得在Language中選擇Swift,然后繼續(xù)next(如圖所示):4.選擇路徑,這個(gè)不用多說(shuō)了,然后create(如圖所示):5.然后你會(huì)看到下面的界面,點(diǎn)擊左邊工程的下三角,出現(xiàn)了一個(gè)main.swift文件,點(diǎn)擊之后如圖所示:6.點(diǎn)擊左上角的運(yùn)行按鈕(快捷鍵:command+R),你會(huì)發(fā)現(xiàn)控制臺(tái)打印出了所有編程語(yǔ)言的第一句話:Hello,World,至此,Swift工程創(chuàng)建完畢。二、Swift的基本語(yǔ)法:下面來(lái)介紹Swift的基本用法(在main.swift中的代碼):import
Foundation
println("Hello,
World!")
println("你好,世界!")
//
定義一個(gè)常量,使用關(guān)鍵字“l(fā)et”
//
在Swift中,幾乎對(duì)所有的基本數(shù)據(jù)類型或者是對(duì)象類型使用結(jié)構(gòu)體進(jìn)行了重寫(xiě)
let
haiDian
=
"海淀"
//
let
haiDian:
String
=
"海淀"
//
在Swift中,系統(tǒng)會(huì)幫你做類型推斷,上一行的代碼和此行一樣
//
\(變量名)把變量或者常量名轉(zhuǎn)化為字符串進(jìn)行輸出
println("haiDian
=
\(haiDian)")
//
"\(變量/常量名)"
可以把變量/常量轉(zhuǎn)化為字符串輸出
//直接輸出
println(haiDian)
//
定義一個(gè)變量,使用關(guān)鍵字“var”
var
hello
=
"你好,"
hello
=
hello
+
haiDian
//
字符串重載:字符串拼接
println("hello
=
\(hello)")
//
Swift幾乎支持所有的Unicode編碼的字符(除了數(shù)學(xué)中的符號(hào)、箭頭和橫線)來(lái)對(duì)變量/常量進(jìn)行命名
let
狗
=
"Dog,"
println(狗)
var
=
狗
+
"愛(ài)你"
println()
//
定義一個(gè)整型
(類型推斷)
var
a
=
10
//
定義一個(gè)整型,其實(shí)這個(gè)語(yǔ)句,編譯器會(huì)幫我們推斷為:var
a:
Int
=
10,格式為:“變量/常量名:
類型”,在Swift中整型是Int,如果系統(tǒng)是32位,那么這個(gè)變量就是Int32,如果系統(tǒng)是64位,那么就是Int64,如果我定義一個(gè)8位的整型樹(shù),那么需要顯式的指定為Int8:
var
b:
Int8
=
12
//
顯式指定Int的位數(shù)
var
c
=
12.0
//
在Swift中,浮點(diǎn)型數(shù)據(jù)默認(rèn)是Double
var
d
=
Double(b)
+
c
//
在Swift中,不支持隱式轉(zhuǎn)換,如果想把兩個(gè)不同類型的數(shù)據(jù)進(jìn)行操作,那么需要顯式的轉(zhuǎn)換其類型,轉(zhuǎn)換格式為:“類型名(常量/變量名)”
//
元組,元組借鑒了關(guān)系型數(shù)據(jù)庫(kù)里面的概念,關(guān)系型數(shù)據(jù)庫(kù)里面的一條數(shù)據(jù)就是一個(gè)元組,元組中可以存放不同類型的數(shù)據(jù),和結(jié)構(gòu)體類似,但是結(jié)構(gòu)體需要先進(jìn)行聲明,元組可以直接創(chuàng)建使用
//
定義一個(gè)元組
let
errorCode
=
(404,
"Not
Fount")
//
這是一個(gè)(Int,
String)類型的元組,相當(dāng)于:let
errorCode:
(Int,
String)
=
(404,
"Not
Fount")
//
元素分解(取出元組中的元素)
//
取出元組里面的元素(通過(guò)下標(biāo)取出)
println("errorCode
=
\(errorCode.0),
errorMessage
=
\(errorCode.1)")
//
可以在創(chuàng)建元組的時(shí)候,給元組里面的元素聲明類型名稱
let
errorCodeA
=
(errorCode:
404,
errorMessage:
"Not
Found")
//
通過(guò)類型名稱取出元素
println("errorCode
=
\(errorCodeA.errorCode),
errorMessage
=
\(errorCodeA.errorMessage)")
println(errorCodeA)
//
如果忽略元組對(duì)應(yīng)位置的元素,那么可以使用“_”
let
(statusCode,
_)
=
errorCodeA
println("statusCode
=
\(statusCode)")
//
數(shù)組:在Swift數(shù)組中,只能存放同一類型的數(shù)據(jù),這樣才能對(duì)數(shù)組進(jìn)行存取操作。如果數(shù)據(jù)類型不是相同的,則會(huì)轉(zhuǎn)換為NSArray來(lái)處理
//
使用var來(lái)聲明一個(gè)可變數(shù)組,
var
nameArrayA
=
["張三",
"李四",
"王五"]
//
相當(dāng)于:var
nameArrayA:
String[]
=
["張三",
"李四",
"王五",
"趙六"]
println("nameArrayA
=
\(nameArrayA)")
//
定義一個(gè)空的數(shù)組
var
someValues
=
[Int]()
//
聲明了一個(gè)空的數(shù)組,數(shù)組里面的元素都是Int,在Xcode6
Beta4之前得版本,寫(xiě)法是:Int[]()
var
nameArrayC
=
["Hello",
123]
//
往數(shù)組中添加元素
nameArrayA.append("趙六")
println("nameArrayA
=
\(nameArrayA)")
//
替換數(shù)組里面的元素
nameArrayA[0]
=
"第一個(gè)"
println(nameArrayA)
//
刪除數(shù)組里面的元素
nameArrayA.removeAtIndex(0)
println(nameArrayA)
//
刪除最后一個(gè)元素
nameArrayA.removeLast()
println(nameArrayA)
//
定義不可變數(shù)組,數(shù)組的可變和不可變是通過(guò)let和var進(jìn)行聲明的,在Xcode6
beta4之前,不可變數(shù)組(常量數(shù)組)不能添加和刪除元素,但是可以對(duì)元素進(jìn)行更改,但是在Xcode6
Beta4之后,常量數(shù)組也不能更改里面的元素
let
nameArrayD
=
["張三",
"李四",
"王五"]
//
nameArrayD[0]
=
"替換"
for
name
in
nameArrayD
{
println("name
=
\(name)")
}
//
既取出數(shù)組里面的元素,又得到元素所在的下標(biāo),需要使用
enumerate(數(shù)組名)
方法
for
(index,
name)
in
enumerate(nameArrayD)
{
println("index
=
\(index),
name
=
\(name)")
}
//
字典,在Swift中,字典所有的key是同一個(gè)類型,所有的Value是同一個(gè)類型,key和value可以是不同的類型,如果不是相應(yīng)的同一類型,則自動(dòng)轉(zhuǎn)換為OC中的NSDictionary
//
聲明一個(gè)空的字典
var
dictionaryStudent
=
Dictionary<String,
Float>()
var
person
=
["name":
"輝哥",
"sex":
"男"]
//
相當(dāng)于:var
person:
Dictionary<Sting,
String>
=
["name":
"輝哥",
"sex":
"男"]
println("person
=
\(person)")
//
字典的打印是無(wú)序的
//
往字典里面添加鍵值
person["habit"]
=
"抽煙"
println("person
=
\(person)")
//
如果字典里面沒(méi)有這個(gè)key,那么直接添加,如果已經(jīng)存在這個(gè)key了,那么直接把之前的value替換掉
person["name"]
=
"波哥"
println("person
=
\(person)")
//
更新某個(gè)key對(duì)應(yīng)的value,使用
updateValue(value,
forKey:
key)
進(jìn)行更新的時(shí)候,會(huì)返回更新之前的舊值
let
oldValue
=
person.updateValue("崔哥",
forKey:
"name")
println("person
=
\(person),
oldValue
=
\(oldValue)")
//
字典的遍歷
for
(key,
value)
in
person
{
println("key
=
\(key),
value
=
\(value)")
}
//
字典的可變和不可變也是通過(guò)let和var進(jìn)行控制的,不可以對(duì)常量字典進(jìn)行更新
//
控制語(yǔ)句:if,if...else,
while,
do...while,switch...case
var
num
=
3
var
condition
=
true
//if
num
{
//
不加小括號(hào),后面的判斷條件只能是Bool類型,整型和其它的類型都不可以
//
println("這是整型")
//}
if
condition
{
println("這是一個(gè)Bool值")
}
for
var
i
=
0;
i
<
10;
i++
{
println("i
=
\(i)")
}
for
j
in
0..<3
{
//
“..<”包括左邊的,不包括右邊的,在Xcode6
Beta4之前的版本,使用“..”
println("j
=
\(j)")
}
for
j
in
0...4
{
//
“...”既包括左邊的,又包括右邊的
println("j
=
\(j)")
}
//
switch,在Swift中,對(duì)switch進(jìn)行了很大的更改,默認(rèn)不需要寫(xiě)break
var
number
=
20
switch
number
{
case
10:
println("number
=
10")
case
20:
println("number
=
20")
default:
println("other")
}
//
如果想強(qiáng)制執(zhí)行下一條語(yǔ)句的話,需要使用fallthrough關(guān)鍵字,本語(yǔ)句必須是滿足條件的
var
numberA
=
10
switch
numberA
{
case
10:
println("number
=
10")
fallthrough
case
20:
println("number
=
20")
//
fallthrough
//
相當(dāng)于OC中不寫(xiě)break的效果
default:
println("other")
}
//
case是一個(gè)范圍
var
numberB
=
12
switch
numberB
{
case
1..<10:
println("這是一位數(shù)")
case
10..<100:
println("這是兩位數(shù)")
default:
println("這是其它數(shù)字")
}
//
case的范圍可以交叉,但是只執(zhí)行第一個(gè)滿足條件的case語(yǔ)句
var
numberC
=
12
switch
numberC
{
case
1..<20:
println("在1~20之間")
case
10..<100:
println("在10~100之間")
default:
println("其它")
}
//
可以進(jìn)行雙重判定(使用
“where
判定條件”關(guān)鍵字)
var
numberD
=
13
switch
numberD
{
case
1..<20
where
numberD
<
15:
println("numberD
=
12")
case
10..<100:
println("兩位數(shù)")
default:
println("其它數(shù)字")
}
//
判斷點(diǎn)在坐標(biāo)系的什么位置,
“_”
:忽略元組中對(duì)應(yīng)位置的值
var
point
=
(3,
5)
switch
point
{
case
(0,
0):
println("原點(diǎn)")
case
(_,
0):
println("X軸")
case
(0,
_):
println("Y軸")
default:
println("在象限內(nèi)")
}
var
pointA
=
(0,
4)
switch
pointA
{
case
(0,
0):
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村合資合作建房合同范本
- 不標(biāo)準(zhǔn)水電施工合同范本
- 內(nèi)江小區(qū)保安合同范本
- 東亮駕照合同范本
- 兩方協(xié)議合同范本
- 買(mǎi)房假合同范例
- 農(nóng)村秸稈銷(xiāo)售合同范本
- 合同范本押金退還
- 化工重苯銷(xiāo)售合同范例
- 卡車(chē)購(gòu)車(chē)合同范本
- 2025年八省聯(lián)考數(shù)學(xué)試題(原卷版)
- 2024年義務(wù)教育2022年版《道德與法治課程標(biāo)準(zhǔn)》真題庫(kù)附答案
- 土壤學(xué)習(xí)題與答案
- 國(guó)家自然科學(xué)基金(NSFC)申請(qǐng)書(shū)樣本
- 觀摩臺(tái)標(biāo)準(zhǔn)化建設(shè)方案
- 數(shù)字化影像與PACS教學(xué)大綱
- 凈身出戶離婚協(xié)議書(shū)(完善版)
- 壓瘡醫(yī)學(xué)護(hù)理課件
- 最小作業(yè)單元管理規(guī)定1
- excl表格形式綜合曲線坐標(biāo)計(jì)算程序bata
- 二手車(chē)背戶買(mǎi)賣(mài)協(xié)議
評(píng)論
0/150
提交評(píng)論