The Swift Programming Language

--lkvt

本人在201463日(北京时间)凌晨起来通过网络观看2014WWDC 苹果公司的发布会有iOS8以及OS X 10.10顿时感到各种激动,今年很有料啊!但是当看到苹果公司要发布新的编程语言Swift出来的时候,瞬间傻眼了,我们苦逼的程序员们又要学习新编程语言了。牛逼的公司就是敢破坏新的条条框框啊,非要把已经使用了20多年的Objective C给替代掉,我们这种程序员还必须跟随人间的脚步,必须从新学习,这篇文章来自苹果官方的《The Swift Programming Language》一书,500多页,现在可以苹果官网有下载,但是都是英文的,现在我用我那个过了四级的英语试着翻译一下。因为Swift大家都有用过,所有翻译难免有各种错漏的,请各位多多包涵,我会不断更新修正的。我的邮箱lkvt@sina.com,有问题请联系,希望大家共同努力!之前在早上我发布的这篇文章,不知道自己在选项中点击了什么,突然发现访问不了,所以我就重新写了一下,好可惜啊,4152个浏览记录和N个评论都没了!!哎,还是继续在写资金的好技术文章分享给大家吧,希望大家多在文章下面评论和点推荐,这样我会更有动力去翻译!!谢谢!

一、Welcome to Swift

1.关于Swift

  Swift是一种用于iOS和OS X应用的全新编程语言,它建立在最好的C和Objective-C语言中,并且没有C语言的兼容性限制。Swift采用安全的编程模式,增加了现代功能使编程更容易、更灵活、更有趣。Swift背靠成熟且备受宠爱的Cocoa 和 Cocoa Touch框架的支持,这是一个重新构想软件开发的机会。

  Swift经过了数年的酝酿,Apple通过改进现有的编译器、调试器和框架结构奠定了Swift的基础,并通过Automatic Reference Counting(ARC)简化了内存管理。Swift的框架建立在坚实的Foundation和Cocoa上,已实现现代化和彻底标准化。 Objective-C本身已经逐步发展到到支持blocks、 collection literals 和modules,使框架采用不中断的现代语言技术。感谢这个基础,我们可以为Apple软件发展的未来引入一种新语言。

  对Objective-C开发者来说Swift看起来很熟悉,它具有Objective-C命名参数的可读性和动态对象模型的力量,提供了无缝接入现有Cocoa框架和与Objective-C混编的能力。建立在这个共同点上,Swift引入了许多新的特性、统一的程序和面向对象的语言部分。

  Swift对于新程序员是友好的,作为一个具有表现力和娱乐性的脚本语言,它是第一个获得工业品质的系统编程语言。它支持playgrounds,一个允许程序员调试Swift代码并立即看到结果,而无需反复编译运行程序的新功能。

  Swift结合了最好的现代语言思维和智慧 - 来自广大的苹果工程师文化。编译器针对性能进行了优化,语言也进行了发展优化,而无需任何牺牲。它的设计从“Hello World”扩展到整个操作系统,这一切使得Swift对于开发者和Apple是一个有意义的投资。

  Swift以极好的方式来编写的iOS和OS X应用,并将继续发展与新特性和功能。Swift充满野心,我们已经迫不及待看你能用它创造什么。

2.Swift概览

  传统建议新语言的第一个程序应该打印“Hello, World”在屏幕上,但在Swift里,这只需要一行来完成。

  

println("Hello,World")

  如果你在C或Objective-C语言编写过代码,这个语法看起来会很熟悉 —— 在Swift里,这行代码是一个完整的程序,你不需要为input/output或字符串处理等功能导入一个单独的库。写在全球范围的代码都作为函数的入口点,所以你并不需要一个main函数,也不必在每个语句的末尾写分号。

  这次概览通过展示如何完成各种程序任务来给你足够的信息开始编写Swift代码,如果你不明白的地方,不要担心,这个概览里的一切细节都会在本书后面详细解释。

  注:为获得最佳体验,在Xcode里把本章作为一个playground打开,playground允许你编辑代码清单,并立即看到结果。

2.1.简单值

  使用let创建一个常量,var创建一个变量。一个常量的值并不需要在编译时是已知的,但你必须给它分配一个值一次,这意味着您可以使用常量来命名一个你决定在许多地方使用的值。

  

    var myVariable = 42

  myVariable = 50

  let myConstant  = 42

  常量或变量必须有相同的类型,你要分配给它的值。然而,你并不总是必须明确写出类型。提供一个值,当您创建一个常量或变量可以让编译器推断出其类型。在上面的示例中,编译器推断出myVariable是整数,因为它的初始值是一个整数。

  如果初始值没有提供足够的信息(或者如果没有初始值),可以在改变后制定类型,用冒号隔开。

  

    let implicitInterger = 70

  let implicitDouble =70.0

  let explicitDouble: Double = 70

  试验:创建一个常数,明确为float类型,并且值为4

  值永远不会绝对转换为另一种类型。如果你需要一个值转换为不同的类型,明确地创建一个所需类型的实例。

  

    let label = "The Width Is"

  let width = 94

  let widthLable = lable + String(width)

  试验:尝试从最后一行除去String的转换,你得到了什么错误?

  还有一个更简单的方法包含字符串值:把值写在括号中 ,并在括号前写一个反斜线(\)。例如:

  

   let apples = 3

  let oranges = 5

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

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

  试验:使用(\),在一个string里包含一个浮点计算,并在一个greeting里包含某个人的名字。

  使用方括号([])创建数组和字典,并在括号中写出index和key来访问它们的元素。

  

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

   shoppingList[1] = "bottle of water"

  

   var occupations = [

     "Malcolm": "Captain",

     "Kaylee": "Mechanic",

       ]

   occupations["Jayne"] = "Public Relations"

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

  

    let emptArry = String[]()

   let emptDictionary = Dictionary<String, Float>()

  如果类型信息可以推断,你可以写一个空数组为[]和一个空字典为[;] ——例如,当你设置一个变量的新值或参数传递给函数。

 

 shoppingList = [] 

  我的邮箱为lkvt@sina.com,请大家可以相互交流谢谢!大家觉得好久写个评论,点个推荐谢谢!!

The Swift Programming Language 中文翻译版(个人翻新随时跟新)的更多相关文章

  1. The Swift Programming Language 中文翻译版

    原文(http://www.cnblogs.com/lkvt/p/3765349.html) 一.Welcome to Swift 1.关于Swift Swift是一种用于iOS和OS X应用的全新编 ...

  2. The Swift Programming Language 英文原版官方文档下载

    The Swift Programming Language 英文原版官方文档下载 今天Apple公司发布了新的编程语言Swift(雨燕)将逐步代替Objective-C语言,大家肯定想学习这个语言, ...

  3. iOS Swift-元组tuples(The Swift Programming Language)

    iOS Swift-元组tuples(The Swift Programming Language) 什么是元组? 元组(tuples)是把多个值组合成一个复合值,元组内的值可以使任意类型,并不要求是 ...

  4. iOS Swift-控制流(The Swift Programming Language)

    iOS Swift-控制流(The Swift Programming Language) for-in 在Swift中for循环我们可以省略传统oc笨拙的条件和循环变量的括号,但是语句体的大括号使我 ...

  5. iOS Swift-简单值(The Swift Programming Language)

    iOS Swift-简单值(The Swift Programming Language) 常量的声明:let 在不指定类型的情况下声明的类型和所初始化的类型相同. //没有指定类型,但是初始化的值为 ...

  6. SWFUpload 2.5.0版 官方说明文档 中文翻译版

    原文地址:http://www.cnblogs.com/youring2/archive/2012/07/13/2590010.html#setFileUploadLimit SWFUpload v2 ...

  7. [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01

    注:CocoaChina翻译小组已着手此书及相关资料的翻译,楼主也加入了,多人协作后的完整译本将很快让大家看到. 翻译群:291864979,想加入的同学请进此群哦.(本系列不再更新,但协作翻译的进度 ...

  8. The Swift Programming Language 中国版

    iSwifting社会的 Swift 兴趣交流群:303868520 iOS 微信公众账号:iOSDevTip Swift 微信公众账号:SwiftDev iSwifting社区 假设你认为这个项目不 ...

  9. redis命令参考和redis文档中文翻译版

    找到了一份redis的中文翻译文档,觉得适合学习和查阅.这份文档翻译的真的很良心啊,他是<Redis 设计与实现>一书的作者黄健宏翻译的. 地址:http://redisdoc.com/i ...

随机推荐

  1. Jquery基础之DOM操作

    转自:http://www.cnblogs.com/bro-ma/p/3063942.html JQuery中的DOM操作主要对包括:建[新建].增[添加].删[删除].改[修改].查[查找][像数据 ...

  2. Ganglia安装搭建

    Ganglia的安装部署 前言 1 一.Ganglia组件 1 二.安装依赖 2 三.安装expat依赖 2 四.安装confuse 3 五.安装ganglia 4 六. 服务端配置(gmetad 节 ...

  3. POJ2774 (后缀数组)

    #include<cstdio> #include<cstring> using namespace std; ],b[]; ],x[],wv[],ws[],h[],rank[ ...

  4. Bootstrap<基础二十七> 多媒体对象(Media Object)

    Bootstrap 中的多媒体对象(Media Object).这些抽象的对象样式用于创建各种类型的组件(比如:博客评论),我们可以在组件中使用图文混排,图像可以左对齐或者右对齐.媒体对象可以用更少的 ...

  5. centos下搭建lamp环境

    1 在线安装所有的服务 yum -y install httpd mysql mysql-server php php-mysql postgresql postgresql-server php-p ...

  6. 关于DMA和它的仇家

    [基础知识]什么叫做DMA?DMA=Direct Memory Access.这是一种通过硬件实现的数据传输机制.简单的说,就是不在CPU的参与下完成数据的传输.[/基础知识]不太明白?我举个简单的例 ...

  7. 一个简单的游戏开发框架(四.舞台Stage)

    首先是StageManager类: class StageManager : public Singleton<StageManager> { friend class Singleton ...

  8. Ant_的最完整build.xml解释

    Ant的概念 Make命令是一个项目管理工具,而Ant所实现功能与此类似.像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷.最初Ant开发者在开发跨平 ...

  9. DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版原创发布-带官方示例程序版

    关于 DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版------------- ...

  10. SharePoint Site "Regional Settings"功能与CSOM的对应

    博客地址:http://blog.csdn.net/FoxDave SharePoint网站中的区域设置:"Regional Settings",可以用CSOM通过Site的一些 ...