【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Swift基礎(chǔ):創(chuàng)建第一個(gè)Swift工程:Swift的基本語(yǔ)法_第1頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Swift基礎(chǔ):創(chuàng)建第一個(gè)Swift工程:Swift的基本語(yǔ)法_第2頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Swift基礎(chǔ):創(chuàng)建第一個(gè)Swift工程:Swift的基本語(yǔ)法_第3頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Swift基礎(chǔ):創(chuàng)建第一個(gè)Swift工程:Swift的基本語(yǔ)法_第4頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Swift基礎(chǔ):創(chuàng)建第一個(gè)Swift工程:Swift的基本語(yǔ)法_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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):

print

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論