Swift是苹果的品牌新的编程语言,在2014年WWDC(苹果开发者大会)上发布的编程语言。
随着Swift语言的发布,苹果也发布了一个出色的SWIFT的参考指南,这里强烈推荐。
但是这个学习指南又长又瘦!所以,如果没有很多的时间,只是想快速学习Swift,那么本教程就是为你准备的。
本 Swift 教程将需要大约25分钟学习,给出 Swift 语言一个快速浏览,包括变量,控制流,类等以及更多的最佳实践。
对于本Swift教程,需要Xcode最新版本(在写这篇Swift教程的时候使用的是Xcode 6.1.1)。学习本教程之前不需要任何Swift和Objective-C的经验,但如果有一些编程经验,但这会对理解和学习有帮助。
注意: 请确保有最新的Xcode(在Mac App Store检查以确保)。Swift正在发生迅速的变化,我们正在竭尽所能为每一个测试版更新本教程; 代码可能无法正常工作在旧版本的Xcode中的或预发行版本中。
Playgrounds简介
启动 Xcode 6, 并转到 File\New\File. 选择 iOS\Source\Playground, 并点击 Next.
命名文件为 SwiftTutorial.playground, 并点击 Create, 并保存在一个方便的地方. 删除其它不用的文件,以保持一个干净的文件目录.
playground 是一种文件类型,并且允许测试 Swift 代码, 可以侧边栏查看每一行的结果. 例如:添加以下行到 playground 中:
let tutorialTeam = 60 let editorialTeam = 17 let totalTeam = tutorialTeam + editorialTeam
totalTeam += 1
let tutorialTeam: Int = 60
let tutorialTeam = 60
let priceInferred = 19.99 let priceExplicit: Double = 19.99
Bools let onSaleInferred = true let onSaleExplicit: Bool = false
Strings let nameInferred = "Whoopie Cushion" let nameExplicit: String = "Whoopie Cushion"
if onSaleInferred { println("\(nameInferred) on sale for \(priceInferred)!") } else { println("\(nameInferred) at regular price: \(priceInferred)!") }
还有一个可以看到输出方法。去到Xcode的主菜单,然后选择 View\Assistant Editor\Show Assistant Editor.
助理编辑器会告诉你的代码中任何println语句的结果,并将结果值显示在一个方便的地方,这往往比使用鼠标放在每一行更容易。
类与方法
在Swift开发中会创建类和方法,这是最常见的作法,让我们来看看!
首先,删除在playground文件的一切内容,以便可以在一个干净的文件中开始新的代码编写。
接下来,将创建一个小费计算器类,以帮助描绘餐厅。 一次添加一小块代码,在这里将一步一步地解释。
// 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) }
(subtotal * taxPct) + subtotal = total subtotal * (taxPct + 1) = total 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()
// 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()
数组和For循环
目前,在上面的代码中有一些重复,因为调用 calcTipWithTotalmethod 几次来计算不同比例的小费。 这里可以通过使用一个数组来减少重复。
替换 printPossibleTips 如以下内容:
let possibleTipsInferred = [0.15, 0.18, 0.20]; // 小费比例数组列表 let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20]; // 小费比例数组列表
for possibleTip in possibleTipsInferred { println("\(possibleTip*100)%: \(calcTipWithTipPct(possibleTip))") }
for i in 0..< possibleTipsInferred.count { let possibleTip = possibleTipsInferred[i] println("\(possibleTip*100)%: \(calcTipWithTipPct(possibleTip))") }
// 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 }
tipCalc.returnPossibleTips()
就是这样 - 恭喜,一个用Swift编写的全功能小费计算器已经完成!
下面是本教程所有最终 playground 文件的代码内容:
// 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() }
第一章主要目的是让一个基本没有计算机图形基础的学员快速入门WebGL,建议大家按照顺序去阅读,不要跳过一些小节。其它的章节,大家可以根据个人需要,随意点击学习都可以。
基础 稍微有一定的HTML/CSS/JavaScript基础,就可学习本课程,如果想实战开发Web3D项目,除了Three.js,前端还是需要深入学习。 学习顺序 初学者,按照顺序阅读 0.学前内容 和 1.快速入门 两章,其他章节可以根据需要选择性学习,内容比较多,也可以当成手册使用,用到某个功能的时候查询一下。 学习建议 电子书的知识讲解详细程度很难照顾基础不同的学员,阐述风格也很难兼容每个读
本文向大家介绍Bootstrap零基础入门教程(二),包括了Bootstrap零基础入门教程(二)的使用技巧和注意事项,需要的朋友参考一下 什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。 历史 Bootstrap 是由 Twitter 的 Mark Otto 和 Jac
本文向大家介绍Bootstrap零基础入门教程(三),包括了Bootstrap零基础入门教程(三)的使用技巧和注意事项,需要的朋友参考一下 什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。 历史 Bootstrap 是由 Twitter 的 Mark Otto 和 Jac
本文向大家介绍Swift hello world!Swift快速入门教程,包括了Swift hello world!Swift快速入门教程的使用技巧和注意事项,需要的朋友参考一下 通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”。在 Swift 中,可以用一行代码实现: 如果你写过 C 或者 Objective-C 代码,那你应该很熟悉这种形式——在 Swift 中
本章节是零基础入门课程,不需要有计算机图形学基础,只需要有点编程基础就可以,本章节的内容不像大多数教科书按特定知识模块区划分知识点,本章节尝试从整体开始介绍,先让你有一个印象,学习完本章节,你基本会对WebGL的大致渲染流程有基本的了解。 直接学习本章节,要比直接去阅读计算机图形学要好得多,直接阅读计算机图形学可能会感觉比较枯燥,没有方向感,甚至学习了很长时间,还不知道在讲解什么。 本章节,每一节