欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

零基礎(chǔ)上手Swift快速入門教程概覽

 更新時間:2015年11月02日 15:46:43   投稿:goldensun  
這篇文章主要介紹了零基礎(chǔ)上手Swift快速入門教程概覽,Swift是由蘋果開發(fā)的新編程語言并且即將開源,需要的朋友可以參考下

Swift是蘋果的品牌新的編程語言,在2014年WWDC(蘋果開發(fā)者大會)上發(fā)布的編程語言。
隨著Swift語言的發(fā)布,蘋果也發(fā)布了一個出色的SWIFT的參考指南,這里強烈推薦。
但是這個學(xué)習(xí)指南又長又瘦!所以,如果沒有很多的時間,只是想快速學(xué)習(xí)Swift,那么本教程就是為你準(zhǔn)備的。
本 Swift 教程將需要大約25分鐘學(xué)習(xí),給出 Swift 語言一個快速瀏覽,包括變量,控制流,類等以及更多的最佳實踐。
對于本Swift教程,需要Xcode最新版本(在寫這篇Swift教程的時候使用的是Xcode 6.1.1)。學(xué)習(xí)本教程之前不需要任何Swift和Objective-C的經(jīng)驗,但如果有一些編程經(jīng)驗,但這會對理解和學(xué)習(xí)有幫助。
注意: 請確保有最新的Xcode(在Mac App Store檢查以確保)。Swift正在發(fā)生迅速的變化,我們正在竭盡所能為每一個測試版更新本教程; 代碼可能無法正常工作在舊版本的Xcode中的或預(yù)發(fā)行版本中。
Playgrounds簡介
啟動 Xcode 6, 并轉(zhuǎn)到 File\New\File. 選擇 iOS\Source\Playground, 并點擊 Next.

2015112153522354.png (730×430)

命名文件為 SwiftTutorial.playground, 并點擊 Create, 并保存在一個方便的地方. 刪除其它不用的文件,以保持一個干凈的文件目錄.
playground 是一種文件類型,并且允許測試 Swift 代碼, 可以側(cè)邊欄查看每一行的結(jié)果. 例如:添加以下行到 playground 中:

復(fù)制代碼 代碼如下:

let tutorialTeam = 60
let editorialTeam = 17
let totalTeam = tutorialTeam + editorialTeam

當(dāng)編寫輸入這些行,會看到側(cè)邊欄上的每一行的結(jié)果。是不是很方便?
Playgrounds是學(xué)習(xí)Swift一個很好的方式(比如這個Swift教程)來試驗新的API,原型代碼或算法,或可視化繪制代碼。 在本Swift教程的其余部分,將使用 playground。
注意: 在這一點上,建議拖動playground文件(SwiftTutorial.playground)到OS X Dock中。
通過這種方式,可以測試一些代碼,Swift使用此文件作為一個快速的暫存器。 當(dāng)然,對于這個工作,必須有playground在一個地方,不能隨便移動它。
Swift變量VS常量
嘗試添加下面一行到 playground 的底部:
復(fù)制代碼 代碼如下:

totalTeam += 1

當(dāng)加入這一行,會發(fā)現(xiàn)有一個錯誤。 這是因為 totalTeam 是一個常數(shù),這意味著它的值永遠(yuǎn)不會改變。Swift中使用關(guān)鍵字 let 聲明常數(shù)。
如果想要 totalTeam 是一個變量,它的值可以隨時被改變 - 聲明它需要用不同的關(guān)鍵字: var。
要做到這一點,初始化 totalTeam 使用以下行來替換之前的聲明:
var totalTeam = tutorialTeam + editorialTeam
現(xiàn)在它能正常工作了!可能就會像你自己認(rèn)為的那樣了,“為什么不使用var聲明一切呢,無需有那么多的限制?”
好吧,使用 let 來聲明一個常量是最好的做法,因為這允許編譯器進(jìn)行優(yōu)化。所以請記?。罕M可能使用 let 來聲明常量!
顯式與推斷輸入
到目前為止,還沒有明確設(shè)置這些常量和變量的類型,因為編譯器有足夠的信息來自動推斷出它。
例如,設(shè)置 tutorialTeam 為 56,編譯器知道56是一個int類型,所以它會自動設(shè)置oftutorialTeam類型為int。
但是,如果你想要也可以設(shè)置明確類型。嘗試通過設(shè)置tutorialTeam的類型如以下的行:
復(fù)制代碼 代碼如下:

let tutorialTeam: Int = 60

如果不知道明確類型,或者讓編譯器推斷類型并自動設(shè)置。這是比較好的做法,可在自動情況下讓編譯器推斷出類型,因為這是 Swift 的主要優(yōu)勢之一:簡潔,易于代碼閱讀。
因為這個,切換回之前的那行使用推斷輸入(自動識別類型):
復(fù)制代碼 代碼如下:

let tutorialTeam = 60

Swift基本類型和控制流
到目前為止,已經(jīng)看到了 Int 的解釋,這是Swift用于整數(shù)值類型的例子,但是還有更多。
嘗試使用一些基本類型,下面每個部分粘貼在 playground 的底部。
Floats 和 Doubles
復(fù)制代碼 代碼如下:

let priceInferred = 19.99
let priceExplicit: Double = 19.99

有兩種類型的小數(shù)點值,如:Float 和 Double。Double有更多的精確度, 并且默認(rèn)是十進(jìn)制值。這意味著 priceInferred 是 Double  類型。
復(fù)制代碼 代碼如下:

Bools
let onSaleInferred = true
let onSaleExplicit: Bool = false

請注意,在 Swift 中使用 true/false 作為布爾值(在 Objective-C 中使用 YES/NO ,所以它們有點不同)。
復(fù)制代碼 代碼如下:

Strings
let nameInferred = "Whoopie Cushion"
let nameExplicit: String = "Whoopie Cushion"

字符串是如你所期望那樣,但請注意,不再像在 Objective-C 中使用 @ 符號了。
if語句和字符串插值
復(fù)制代碼 代碼如下:

if onSaleInferred {
  println("\(nameInferred) on sale for \(priceInferred)!")
} else {
  println("\(nameInferred) at regular price: \(priceInferred)!")
}

這是一個if語句的一個例子,就像在其它的編程語言一樣。條件的括號是可選的,大括號是必需的,即使只有1行語句。
這里說明一個叫做字符串內(nèi)插的新的技術(shù)的一個例子。在Swift中每當(dāng)想要替換字符串中東西,只需使用此語法:\(表達(dá)式)。
在這一點上,可以看到在側(cè)邊欄中 println 的結(jié)果,由于空間有限它可能不好看到。要查看輸出,將鼠標(biāo)移動到該行,并單擊出現(xiàn)的眼珠子(圖標(biāo)):

2015112154338576.png (700×460)

還有一個可以看到輸出方法。去到Xcode的主菜單,然后選擇 View\Assistant Editor\Show Assistant Editor.

2015112154402502.png (700×434)

助理編輯器會告訴你的代碼中任何println語句的結(jié)果,并將結(jié)果值顯示在一個方便的地方,這往往比使用鼠標(biāo)放在每一行更容易。
類與方法
在Swift開發(fā)中會創(chuàng)建類和方法,這是最常見的作法,讓我們來看看!
首先,刪除在playground文件的一切內(nèi)容,以便可以在一個干凈的文件中開始新的代碼編寫。
接下來,將創(chuàng)建一個小費計算器類,以幫助描繪餐廳。 一次添加一小塊代碼,在這里將一步一步地解釋。

復(fù)制代碼 代碼如下:

// 1
class TipCalculator {

}


要創(chuàng)建一個類,只需在class關(guān)鍵字后輸入類的名稱。然后,類的主體使用一個大括號。
如果是繼承另一個類,使用一個 :符號,后面是繼承的類的名稱。請注意,不一定需要繼承(不像在Objective-C,在那里必須繼承NSObject 之類的東西或派生自NSObject)。
添加以下代碼在大括號內(nèi):
復(fù)制代碼 代碼如下:

  // 2
  let total: Double
  let taxPct: Double
  let subtotal: Double

添加這些后會出現(xiàn)一些錯誤,但不用擔(dān)心,接下來很快就會解決這些問題。
這就是如何在一個類中創(chuàng)建屬性 – 和創(chuàng)建變量或常數(shù)的方式相同。在這里,將創(chuàng)建三個常量的屬性 – 一個是法案的總額(稅后), 一個用于應(yīng)用到法案的稅收比例,一個用于法案的小計(稅前)。
請注意,任何屬性當(dāng)聲明它們時,聲明必須為它們設(shè)置初始值,或者在初始化時 –這就是為什么當(dāng)前會有錯誤。如果不希望為屬性設(shè)置初始值,必須聲明它們作為可選(更多,在未來的教程)。
在之前創(chuàng)建的塊之后添加代碼(花括號內(nèi)):
復(fù)制代碼 代碼如下:

  // 3
  init(total: Double, taxPct: Double) {
    self.total = total
    self.taxPct = taxPct
    subtotal = total / (taxPct + 1)
  }

這將為類創(chuàng)建一個初始化器并使用兩個參數(shù)。初始化器在 Swift 的名稱總是為 init – 但可以有多個(如果必要的話),可采用不同的參數(shù)。
請注意,這里已經(jīng)給這個方法使用了參數(shù),與這個類的屬性的名稱相同。正因為如此,需要通過將自身前綴在屬性之前,以區(qū)分兩者
請注意,由于沒有 subtotal 屬性,所以不會有名稱沖突,不需要添加 self 關(guān)鍵字, 因為編譯器可以自動推斷。
注意: 如果想知道 subtotal = total / (tipPct + 1) 計算來自:
復(fù)制代碼 代碼如下:

(subtotal * taxPct) + subtotal = total
subtotal * (taxPct + 1) = total
subtotal = total / (taxPct + 1)

在先前代碼塊后添加代碼(花括號內(nèi)):
復(fù)制代碼 代碼如下:

  // 4
  func calcTipWithTipPct(tipPct: Double) -> Double {
    return subtotal * tipPct
  }

要定義一個方法, 可以使用 func 關(guān)鍵字. 然后列出參數(shù)(必須明確類型), 添加 -> 符號, 最后列出了返回類型。
這是一個函數(shù),確定給小費的金額,這很簡單,只要通過百分比乘以小計就可以得到結(jié)果。
在先前塊之后添加代碼(花括號內(nèi)):
復(fù)制代碼 代碼如下:

  // 5
  func printPossibleTips() {
    println("15%: \(calcTipWithTipPct(0.15))")
    println("18%: \(calcTipWithTipPct(0.18))")
    println("20%: \(calcTipWithTipPct(0.20))")
  }

這是新的方法用于打印出三個可能的小費。
需要注意的是,當(dāng)調(diào)用一個類的實例方法,第一個參數(shù)不需要命名(但其余要)。
另外,還要注意字符串插值是如何不限于打印輸出變量??梢允褂酶鞣N復(fù)雜的方法調(diào)用和操作,但需要正確的內(nèi)聯(lián)!
添加以下代碼到playground(大括號之后)的底部:
復(fù)制代碼 代碼如下:

// 6
let tipCalc = TipCalculator(total: 33.25, taxPct: 0.06)
tipCalc.printPossibleTips()

最后,創(chuàng)建小費計算器的實例,并調(diào)用方法打印可能小費。
這是到目前為止整個 playground 文件的全部代碼:
復(fù)制代碼 代碼如下:

// 1
class TipCalculator {
 
  // 2
  let total: Double
  let taxPct: Double
  let subtotal: Double
 
  // 3
  init(total: Double, taxPct: Double) {
    self.total = total
    self.taxPct = taxPct
    subtotal = total / (taxPct + 1)
  }
 
  // 4
  func calcTipWithTipPct(tipPct: Double) -> Double {
    return subtotal * tipPct
  }
 
  // 5
  func printPossibleTips() {
    println("15%: \(calcTipWithTipPct(0.15))")
    println("18%: \(calcTipWithTipPct(0.18))")
    println("20%: \(calcTipWithTipPct(0.20))")
  }
 
}
 
// 6
let tipCalc = TipCalculator(total: 33.25, taxPct: 0.06)
tipCalc.printPossibleTips()

查看助理編輯器的結(jié)果:

2015112154424624.png (700×361)

數(shù)組和For循環(huán)
目前,在上面的代碼中有一些重復(fù),因為調(diào)用 calcTipWithTotalmethod 幾次來計算不同比例的小費。 這里可以通過使用一個數(shù)組來減少重復(fù)。
替換 printPossibleTips 如以下內(nèi)容:

復(fù)制代碼 代碼如下:

let possibleTipsInferred = [0.15, 0.18, 0.20]; // 小費比例數(shù)組列表
let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20]; // 小費比例數(shù)組列表

這說明創(chuàng)建double類型數(shù)組,既有推斷,又有顯式類型的例子(同時創(chuàng)建只是用于演示目的)。需要注意的是[Double]是Array<Double>的快捷方式。
然后下面添加這些行:
復(fù)制代碼 代碼如下:

for possibleTip in possibleTipsInferred {
  println("\(possibleTip*100)%: \(calcTipWithTipPct(possibleTip))")
}

枚舉遍歷數(shù)組中的項與Objective-C相似,快速枚舉- 請注意,不需要括號!
自己可編寫類似這樣的循環(huán)(但是目前這個語法是首選的風(fēng)格):
復(fù)制代碼 代碼如下:

for i in 0..< possibleTipsInferred.count {
  let possibleTip = possibleTipsInferred[i]
  println("\(possibleTip*100)%: \(calcTipWithTipPct(possibleTip))")
}

..< 運算符是一個非包函范圍運算符,不包括上限值。還有一個運算符 ... 它具有包容性。
數(shù)組通過 count 屬性來計算數(shù)組中的項目總數(shù)。也可以查找數(shù)組中特定項,通過語法 arrayName[index] 定義,如在這里看到。
字典
讓我們做最后一次改變小費計算器。不是簡單地打印出小費,可以將結(jié)果返回為字典。 這將使結(jié)果更容易顯示在某種用于該應(yīng)用的用戶界面。
刪除printPossibleTips方法,并將它替換為以下代碼:
復(fù)制代碼 代碼如下:

// 1
func returnPossibleTips() -> [Int: Double] {
 
  let possibleTipsInferred = [0.15, 0.18, 0.20]
  let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20]
 
  // 2
  var retval = [Int: Double]()
  for possibleTip in possibleTipsInferred {
    let intPct = Int(possibleTip*100)
    // 3
    retval[intPct] = calcTipWithTipPct(possibleTip)
  }
  return retval
 
}

這會得到一個錯誤在 playground 中,但很快就會解決了。
首先讓我們通過以上部分的代碼段:
在這里,標(biāo)記方法返回字典,其中關(guān)鍵是int(尖端百分比為int,如15或20),并且該值是一個 Double(所計算的小費)。需要注意的是 [Int: Double]  只是 Dictionary<Int, Double> 的一個快捷方式。
這顯示如何創(chuàng)建一個空的字典。請注意,因為正在此詞典,需要聲明它作為一個變量(使用var),而不是一個常量(使用let)。 否則,會得到一個編譯錯誤。
這就是在字典中設(shè)置項目。 正如所看到的,它類似于Objective-C的字面量語法。
最后,修改 playground 文件的最后一行來調(diào)用這個方法(此修復(fù)錯誤):

復(fù)制代碼 代碼如下:

 tipCalc.returnPossibleTips()


當(dāng) playground 評估計算,應(yīng)該能看到結(jié)果為字典(點擊眼球的擴展視圖,并使用下箭頭展開)。

2015112154517345.png (700×474)

就是這樣 - 恭喜,一個用Swift編寫的全功能小費計算器已經(jīng)完成!
下面是本教程所有最終 playground 文件的代碼內(nèi)容:

復(fù)制代碼 代碼如下:

// 1
class TipCalculator {
// 2
  let total: Double
  let taxPct: Double
  let subtotal: Double
  // 3
  init(total: Double, taxPct: Double) {
    self.total = total
    self.taxPct = taxPct
    subtotal = total / (taxPct + 1)
  }

  // 4
  func calcTipWithTipPct(tipPct: Double) -> Double {
    return subtotal * tipPct
  }
  // 1
  func returnPossibleTips() -> [Int: Double] {
     let possibleTipsInferred = [0.15, 0.18, 0.20]
     let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20]
    // 2
   var retval = [Int: Double]()
    for possibleTip in possibleTipsInferred {
      let intPct = Int(possibleTip*100)
      // 3
      retval[intPct] = calcTipWithTipPct(possibleTip)
    }
    return retval  
  }
}
// 6
let tipCalc = TipCalculator(total: 33.25, taxPct: 0.06)
tipCalc.returnPossibleTips()
}

相關(guān)文章

  • Swift設(shè)計思想Result<T>與Result<T,?E:?Error>類型解析

    Swift設(shè)計思想Result<T>與Result<T,?E:?Error>類型解析

    這篇文章主要為大家介紹了Swift設(shè)計思想Result<T>與Result<T,?E:?Error>的類型示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Swift可選值優(yōu)化示例詳解

    Swift可選值優(yōu)化示例詳解

    這篇文章主要為大家介紹了Swift可選值優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Swift在什么情況會發(fā)生內(nèi)存訪問沖突詳解

    Swift在什么情況會發(fā)生內(nèi)存訪問沖突詳解

    這篇文章主要給大家介紹了關(guān)于Swift在什么情況會發(fā)生內(nèi)存訪問沖突的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Swift編程之枚舉類型詳解

    Swift編程之枚舉類型詳解

    這篇文章主要介紹了Swift編程之枚舉類型,講解了枚舉語法、匹配枚舉值與switch語句、關(guān)聯(lián)值、原始值等內(nèi)容,Swift中枚舉類型是最重要的類型,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 淺談Swift派發(fā)機制

    淺談Swift派發(fā)機制

    派發(fā)目的是讓 CPU 知道被調(diào)用的函數(shù)在哪里。Swift 語言是支持編譯型語言的直接派發(fā),函數(shù)表派發(fā)和消息機制派發(fā)三種派發(fā)方式的,下面分別對這三種派發(fā)方式說明下。
    2021-06-06
  • Swift中使用可選類型完美解決占位問題

    Swift中使用可選類型完美解決占位問題

    這篇文章主要介紹了Swift中使用可選類型完美解決占位問題,本文講解了為Dictionary增加objectsForKeys函數(shù)、Swift中更簡便的方法、內(nèi)嵌可選類型等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • RxSwift學(xué)習(xí)教程之類型對象Subject詳解

    RxSwift學(xué)習(xí)教程之類型對象Subject詳解

    這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)教程之類型對象Subject的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-09-09
  • Swift中Optional值的鏈?zhǔn)秸{(diào)用學(xué)習(xí)筆記

    Swift中Optional值的鏈?zhǔn)秸{(diào)用學(xué)習(xí)筆記

    這篇文章主要介紹了Swift中Optional值的鏈?zhǔn)秸{(diào)用學(xué)習(xí)筆記,Optional鏈?zhǔn)荢wift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-07-07
  • 詳解Swift編程中下標(biāo)的用法

    詳解Swift編程中下標(biāo)的用法

    這篇文章主要介紹了Swift編程中下標(biāo)的用法,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • Swift算法實現(xiàn)字符串轉(zhuǎn)數(shù)字的方法示例

    Swift算法實現(xiàn)字符串轉(zhuǎn)數(shù)字的方法示例

    最近學(xué)完了swift想著實踐下,就通過一些簡單的算法進(jìn)行學(xué)習(xí)研究,下面這篇文章主要介紹了Swift算法實現(xiàn)字符串轉(zhuǎn)數(shù)字的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03

最新評論