苹果Swift编程语言入门教程【中文版】

来源:互联网 发布:淘宝名词解释大全 编辑:程序博客网 时间:2024/04/30 13:06

  1 简介

 

  Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来是的编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。

 

  Swift已经存在了多年。Apple基于已有的编译器、调试器、框架作为其基础架构。通过ARC(Automatic Reference Counting,自动引用计数)来简化内存管理。我们的框架栈则一直基于Cocoa。Objective-C进化支持了块、collection literal和模块,允许现代语言的框架无需深入即可使用。(by gashero)感谢这些基础工作,才使得可以在Apple软件开发中引入新的编程语言。

 

  Objective-C开发者会感到Swift的似曾相识。Swift采用了Objective-C的命名参数和动态对象模型。提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能和结合面向过程和面向对象的功能。

 

  Swift对新的程序员也是友好的。他是工业级品质的系统编程语言,却又像脚本语言一样的友好。他支持playground,允许程序员实验一段Swift代码功能并立即看到结果,而无需麻烦的构建和运行一个应用。

 

  Swift集成了现代编程语言思想,以及Apple工程文化的智慧。编译器是按照性能优化的,而语言是为开发优化的,无需互相折中。(by gashero)可以从"Hello, world"开始学起并过渡到整个系统。所有这些使得Swift成为Apple软件开发者创新的源泉。

 

  Swift是编写iOS和OSX应用的梦幻方式,并且会持续推进新功能的引入。我们迫不及待的看到你用他来做点什么。

 

  2 Swift入门

 

  一个新语言的学习应该从打印"Hello, world"开始。在Swift,就是一行:

 

  println("Hello, world")

 

  如果你写过C或Objective-C代码,这个语法看起来很熟悉,在Swift,这就是完整的程序了。你无需导入(import)一个单独的库供输入输出和字符串处理。全局范围的代码就是用于程序的入口,所以你无需编写一个 main() 函数。你也无需在每个语句后写分号。

 

  这个入门会给出足够的信息教你完成一个编程任务。无需担心你还不理解一些东西,所有没解释清楚的,会在本书后续详细讲解。

 

Note

作为最佳实践,可以将本章在Xcode的playground中打开。Playground允许你编辑代码并立即看到结果。

 

  3 简单值

 

  使用let来定义常量,var定义变量。常量的值无需在编译时指定,但是至少要赋值一次。这意味着你可以使用常量来命名一个值,你发现只需一次确定,却用在多个地方。

 

  var myVariable = 42

  myVariable = 50

  let myConstant = 42

 

Note

gashero注记

这里的常量定义类似于函数式编程语言中的变量,一次赋值后就无法修改。多多使用有益健康。

 

  一个常量或变量必须与赋值时拥有相同的类型。因此你不用严格定义类型。提供一个值就可以创建常量或变量,并让编译器推断其类型。在上面例子中,编译其会推断myVariable是一个整数类型,因为其初始化值就是个整数。

 

Note

gashero注记

类型与变量名绑定,属于静态类型语言。有助于静态优化。与Python、JavaScript等有所区别。

 

  如果初始化值没有提供足够的信息(或没有初始化值),可以在变量名后写类型,以冒号分隔。

 

  let imlicitInteger = 70

  let imlicitDouble = 70.0

  let explicitDouble: Double = 70

 

Note

练习

创建一个常量,类型为Float,值为4。

 

  值永远不会隐含转换到其他类型。如果你需要转换一个值到不同类型,明确的构造一个所需类型的实例。

 

  let label = "The width is "

  let width = 94

  let widthLabel = label + String(width)

 

Note

练习

尝试删除最后一行的String转换,你会得到什么错误?

 

  还有更简单的方法来在字符串中包含值:以小括号来写值,并用反斜线("")放在小括号之前。例如:

 

  let apples = 3

  let oranges = 5 //by gashero

  let appleSummary = "I have \(apples) apples."

  let fruitSummary = "I have \(apples + oranges) pieces of fruit."

 

Note

练习

使用 () 来包含一个浮点数计算到字符串,并包含某人的名字来问候。

 

  创建一个数组和字典使用方括号 "[]" ,访问其元素则是通过方括号中的索引或键。

 

  var shoppingList = ["catfish", "water", "tulips", "blue paint"]

  shoppingList[1] = "bottle of water"

  var occupations = [ "Malcolm": "Captain", "Kaylee": "Mechanic", ]

  occupations["Jayne"] = "Public Relations"

 

  要创建一个空的数组或字典,使用初始化语法:

 

  let emptyArray = String[]()

  let emptyDictionary = Dictionary<String, Float>()

 

  如果类型信息无法推断,你可以写空的数组为 "[]" 和空的字典为 "[:]",例如你设置一个知道变量并传入参数到函数:

 

  shoppingList = [] //去购物并买些东西 by gashero

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为手机突然无服务怎么办 sim卡显示无服务怎么办 华为麦芒进水无限开关机怎么办 华为麦芒5进水黑屏怎么办 华为麦芒6进水了怎么办 4g手机开不开机怎么办 全屏钢化膜总是翘边怎么办 华为麦芒屏幕触屏失灵怎么办 华为麦芒5运行慢怎么办 手机屏保密码忘记了怎么办 麦芒5密码锁忘了怎么办 超薄手机壳松了怎么办 华为麦芒5声音小怎么办 笔记本外壳a面裂了怎么办 苹果手机外壳摔坏了怎么办 挂衣服肩膀出包怎么办 摩拜单车手机号注销了怎么办 摩拜单车手机号码换了怎么办 摩拜单车换手机号码打不开怎么办 摩拜单车丢了怎么办 摩拜单车忘锁了怎么办 透明手机壳粘指纹怎么办 tpu手机壳变黄了怎么办 0pp0手机声音小怎么办 橡胶皮套晒坏了怎么办 宝宝晚上吹空调发烧怎么办 玩手机手指尖疼怎么办 手机型号不支持微信运动怎么办 手腕向下压会疼怎么办 手腕韧带拉伤怎么办恢复快 华为手机用车载充电慢怎么办 华为麦芒6充电慢怎么办 oppo手机压弯了怎么办 麦芒5电池不耐用怎么办 华为7x照相模糊怎么办 华为麦芒6照相虚怎么办 荣耀8gps信号弱怎么办 华为麦芒4手机卡顿怎么办 华为麦芒4玩游戏卡怎么办 sim卡换卡通讯录丢了怎么办 换sim卡通讯录怎么办