- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章零基础上手Swift快速入门教程概览由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
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 中
当编写输入这些行,会看到侧边栏上的每一行的结果。是不是很方便? Playgrounds是学习Swift一个很好的方式(比如这个Swift教程)来试验新的API,原型代码或算法,或可视化绘制代码。 在本Swift教程的其余部分,将使用 playground。 注意: 在这一点上,建议拖动playground文件(SwiftTutorial.playground)到OS X Dock中。 通过这种方式,可以测试一些代码,Swift使用此文件作为一个快速的暂存器。 当然,对于这个工作,必须有playground在一个地方,不能随便移动它。 Swift变量VS常量 尝试添加下面一行到 playground 的底部:
当加入这一行,会发现有一个错误。 这是因为 totalTeam 是一个常数,这意味着它的值永远不会改变。Swift中使用关键字 let 声明常数。 如果想要 totalTeam 是一个变量,它的值可以随时被改变 - 声明它需要用不同的关键字: var。 要做到这一点,初始化 totalTeam 使用以下行来替换之前的声明: var totalTeam = tutorialTeam + editorialTeam 现在它能正常工作了!可能就会像你自己认为的那样了,“为什么不使用var声明一切呢,无需有那么多的限制?” 好吧,使用 let 来声明一个常量是最好的做法,因为这允许编译器进行优化。所以请记住:尽可能使用 let 来声明常量! 显式与推断输入 到目前为止,还没有明确设置这些常量和变量的类型,因为编译器有足够的信息来自动推断出它。 例如,设置 tutorialTeam 为 56,编译器知道56是一个int类型,所以它会自动设置oftutorialTeam类型为int。 但是,如果你想要也可以设置明确类型。尝试通过设置tutorialTeam的类型如以下的行:
如果不知道明确类型,或者让编译器推断类型并自动设置。这是比较好的做法,可在自动情况下让编译器推断出类型,因为这是 Swift 的主要优势之一:简洁,易于代码阅读。 因为这个,切换回之前的那行使用推断输入(自动识别类型):
Swift基本类型和控制流 到目前为止,已经看到了 Int 的解释,这是Swift用于整数值类型的例子,但是还有更多。 尝试使用一些基本类型,下面每个部分粘贴在 playground 的底部。 Floats 和 Doubles 。
有两种类型的小数点值,如:Float 和 Double。Double有更多的精确度, 并且默认是十进制值。这意味着 priceInferred 是 Double 类型.
请注意,在 Swift 中使用 true/false 作为布尔值(在 Objective-C 中使用 YES/NO ,所以它们有点不同).
字符串是如你所期望那样,但请注意,不再像在 Objective-C 中使用 @ 符号了。 if语句和字符串插值 。
这是一个if语句的一个例子,就像在其它的编程语言一样。条件的括号是可选的,大括号是必需的,即使只有1行语句。 这里说明一个叫做字符串内插的新的技术的一个例子。在Swift中每当想要替换字符串中东西,只需使用此语法:\(表达式)。 在这一点上,可以看到在侧边栏中 println 的结果,由于空间有限它可能不好看到。要查看输出,将鼠标移动到该行,并单击出现的眼珠子(图标):
还有一个可以看到输出方法。去到Xcode的主菜单,然后选择 View\Assistant Editor\Show Assistant Editor. 。
助理编辑器会告诉你的代码中任何println语句的结果,并将结果值显示在一个方便的地方,这往往比使用鼠标放在每一行更容易。 类与方法 在Swift开发中会创建类和方法,这是最常见的作法,让我们来看看! 首先,删除在playground文件的一切内容,以便可以在一个干净的文件中开始新的代码编写。 接下来,将创建一个小费计算器类,以帮助描绘餐厅。 一次添加一小块代码,在这里将一步一步地解释.
// 1 class TipCalculator { 。
} 。
要创建一个类,只需在class关键字后输入类的名称。然后,类的主体使用一个大括号。 如果是继承另一个类,使用一个 :符号,后面是继承的类的名称。请注意,不一定需要继承(不像在Objective-C,在那里必须继承NSObject 之类的东西或派生自NSObject)。 添加以下代码在大括号内:
添加这些后会出现一些错误,但不用担心,接下来很快就会解决这些问题。 这就是如何在一个类中创建属性 – 和创建变量或常数的方式相同。在这里,将创建三个常量的属性 – 一个是法案的总额(税后), 一个用于应用到法案的税收比例,一个用于法案的小计(税前)。 请注意,任何属性当声明它们时,声明必须为它们设置初始值,或者在初始化时 –这就是为什么当前会有错误。如果不希望为属性设置初始值,必须声明它们作为可选(更多,在未来的教程)。 在之前创建的块之后添加代码(花括号内):
这将为类创建一个初始化器并使用两个参数。初始化器在 Swift 的名称总是为 init – 但可以有多个(如果必要的话),可采用不同的参数。 请注意,这里已经给这个方法使用了参数,与这个类的属性的名称相同。正因为如此,需要通过将自身前缀在属性之前,以区分两者 请注意,由于没有 subtotal 属性,所以不会有名称冲突,不需要添加 self 关键字, 因为编译器可以自动推断。 注意: 如果想知道 subtotal = total / (tipPct + 1) 计算来自:
在先前代码块后添加代码(花括号内):
要定义一个方法, 可以使用 func 关键字. 然后列出参数(必须明确类型), 添加 -> 符号, 最后列出了返回类型。 这是一个函数,确定给小费的金额,这很简单,只要通过百分比乘以小计就可以得到结果。 在先前块之后添加代码(花括号内):
这是新的方法用于打印出三个可能的小费。 需要注意的是,当调用一个类的实例方法,第一个参数不需要命名(但其余要)。 另外,还要注意字符串插值是如何不限于打印输出变量。可以使用各种复杂的方法调用和操作,但需要正确的内联! 添加以下代码到playground(大括号之后)的底部:
最后,创建小费计算器的实例,并调用方法打印可能小费。 这是到目前为止整个 playground 文件的全部代码:
查看助理编辑器的结果:
数组和For循环 目前,在上面的代码中有一些重复,因为调用 calcTipWithTotalmethod 几次来计算不同比例的小费。 这里可以通过使用一个数组来减少重复。 替换 printPossibleTips 如以下内容:
这说明创建double类型数组,既有推断,又有显式类型的例子(同时创建只是用于演示目的)。需要注意的是[Double]是Array<Double>的快捷方式。 然后下面添加这些行:
枚举遍历数组中的项与Objective-C相似,快速枚举- 请注意,不需要括号! 自己可编写类似这样的循环(但是目前这个语法是首选的风格):
..< 运算符是一个非包函范围运算符,不包括上限值。还有一个运算符 ... 它具有包容性。 数组通过 count 属性来计算数组中的项目总数。也可以查找数组中特定项,通过语法 arrayName[index] 定义,如在这里看到。 字典 让我们做最后一次改变小费计算器。不是简单地打印出小费,可以将结果返回为字典。 这将使结果更容易显示在某种用于该应用的用户界面。 删除printPossibleTips方法,并将它替换为以下代码:
这会得到一个错误在 playground 中,但很快就会解决了。 首先让我们通过以上部分的代码段: 在这里,标记方法返回字典,其中关键是int(尖端百分比为int,如15或20),并且该值是一个 Double(所计算的小费)。需要注意的是 [Int: Double] 只是 Dictionary<Int, Double> 的一个快捷方式。 这显示如何创建一个空的字典。请注意,因为正在此词典,需要声明它作为一个变量(使用var),而不是一个常量(使用let)。 否则,会得到一个编译错误。 这就是在字典中设置项目。 正如所看到的,它类似于Objective-C的字面量语法。 最后,修改 playground 文件的最后一行来调用这个方法(此修复错误):
。
tipCalc.returnPossibleTips() 。
。
当 playground 评估计算,应该能看到结果为字典(点击眼球的扩展视图,并使用下箭头展开).
就是这样 - 恭喜,一个用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() } 。
。
最后此篇关于零基础上手Swift快速入门教程概览的文章就讲到这里了,如果你想了解更多关于零基础上手Swift快速入门教程概览的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
有没有办法在 .swift 文件(编译成 .swift 模块)中声明函数,如下所示: 你好.swift func hello_world() { println("hello world")
我正在尝试使用 xmpp_messenger_ios 和 XMPPFramework 在 iOS 上执行 MUC 这是加入房间的代码。 func createOrJoinRoomOnXMPP()
我想在我的应用程序上创建一个 3D Touch 快捷方式,我已经完成了有关快捷方式本身的所有操作,它显示正确,带有文本和图标。 当我运行这个快捷方式时,我的应用程序崩溃了,因为 AppDelegate
我的代码如下: let assetTag = Expression("asset_tag") let query2 = mdm.select(mdm[assetTag],os, mac, lastRe
我的 swift 代码如下所示 Family.arrayTuple:[(String,String)]? = [] Family.arrayTupleStorage:String? Family.ar
这是我的 JSON,当我读取 ord 和 uniq 数据时出现错误 let response2 : [String: Any] = ["Response":["status":"SUCCESS","
我想将 swift 扩展文件移动到 swift 包中。但是,将文件移动到 swift 包后,我遇到了这种错误: "Type 'NSAttributedString' has no member 'ma
使用CocoaPods,我们可以设置以下配置: pod 'SourceModel', :configurations => ['Debug'] 有什么方法可以用 Swift Package Manag
我正在 Xcode 中开发一个 swift 项目。我将其称为主要项目。我大部分都在工作。我在日期选择器、日期范围和日期数学方面遇到了麻烦,因此我开始了另一个名为 StarEndDate 的项目,其中只
这是 ObjectiveC 代码: CCSprite *progress = [CCSprite spriteWithImageNamed:@"progress.png"]; mProgressBar
我正在创建一个命令行工具,在 Xcode 中使用 Swift。我想使用一个类似于 grunt 的配置文件确实如此,但我希望它是像 Swift 包管理器的 package.swift 文件那样的快速代码
我假设这意味着使用系统上安装的任何 swift 运行脚本:#!/usr/bin/swift 如何指定脚本适用的解释器版本? 最佳答案 Cato可用于此: #!/usr/bin/env cato 1.2
代码说完全没问题,没有错误,但是当我去运行模拟器的时候,会出现这样的字样: (Swift.LazyMapCollection (_base:[ ] 我正在尝试创建一个显示报价的报价应用。 这是导入
是否可以在运行 Swift(例如 Perfect、Vapor、Kitura 等)的服务器上使用 RealmSwift 并使用它来存储数据? (我正在考虑尝试将其作为另一种解决方案的替代方案,例如 no
我刚开始学习编程,正在尝试完成 Swift 编程书中的实验。 它要求““编写一个函数,通过比较两个 Rank 值的原始值来比较它们。” enum Rank: Int { case Ace = 1 ca
在您将此问题标记为重复之前,我检查了 this question 它对我不起作用。 如何修复这个错误: error: SWIFT_VERSION '5.0' is unsupported, suppo
从 Xcode 9.3 开始,我在我的模型中使用“Swift.ImplicitlyUnwrappedOptional.some”包裹了我的字符串变量 我不知道这是怎么发生的,但它毁了我的应用程序! 我
这个问题在这里已经有了答案: How to include .swift file from other .swift file in an immediate mode? (2 个答案) 关闭 6
我正在使用 Swift Package Manager 创建一个应用程序,我需要知道构建项目的配置,即 Debug 或 Release。我试图避免使用 .xcodeproj 文件。请有人让我知道这是否
有一个带有函数定义的文件bar.swift: func bar() { println("bar") } 以及一个以立即模式运行的脚本foo.swift: #!/usr/bin/xcrun s
我是一名优秀的程序员,十分优秀!