全书文件夹:

一、Welcome to Swift

二、Language Guide

三、Language Reference

/*

译者的废话:

几个小时前熬夜看了WWDC,各种激动,今年非常有料啊!当看到Swift出来的时候,瞬间傻眼,又要学习新语言了。这篇文章来自苹果官方的《The Swift Programming Language》一书,500页左右,在苹果官网有下载。Swift大家都没实际用过,本翻译一定是有各种错漏的,各位多多包涵,我会不断更新修正的。

——(博客园、新浪微博)葛布林大帝

*/

一、Welcome to Swift

1.关于Swift

  Swift是一种用于iOS和OS X应用的全新编程语言,它建立在最好的C和Objective-C语言中,而且没有C语言的兼容性限制。Swift採用安全的编程模式,添加了现代功能使编程更easy、更灵活、更有趣。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结合了最好的现代语言思维和智慧 - 来自广大的苹果project师文化。编译器针对性能进行了优化,语言也进行了发展优化,而无需不论什么牺牲。它的设计从“Hello World”扩展到整个操作系统,这一切使得Swift对于开发人员和Apple是一个有意义的投资。

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

2.Swift概览

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

  

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

  这次概览通过展示怎样完毕各种程序任务来给你足够的信息開始编写Swift代码,假设你不明确的地方,不要操心,这个概览里的一切细节都会在本书后面详解。

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

2.1.简单值

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

  

  常量或变量必须有同样的类型,你要分配给它的值。然而,你并不总是必须明白写出类型。提供一个值,当您创建一个常量或变量能够让编译器判断出其类型。在上面的演示样例中,编译器判断出myVariable是整数,由于它的初始值是一个整数。

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

  

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

  值永远不会绝对转换为还有一种类型。假设你须要一个值转换为不同的类型,明白地创建一个所需类型的实例。

  

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

  另一个更简单的方法包括字符串值:把值写在括号里 ,并在括号前写一个反斜线(\)。比如:

  

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

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

  

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

  

  假设类型信息能够判断,你能够写一个空数组为[]和一个空字典为[;] ——比如,当你设置一个变量的新值或參数传递给函数。

  

Swift 新语言开发的更多相关文章

  1. IOS开发-Swift新语言初见

    Safe Swift pairs increased type safety with type inference, restricts direct access to pointers, and ...

  2. 现代的新语言--Swift初探

    新的语言 WWDC简短的介绍,新的语言Swift就问世了,尽管新语言的名字导致贴吧下歌手粉丝和开发人员们争抢地盘- -,只是雨燕就是这么来了. WWDC keynote里给Swift打上了非常多标签: ...

  3. iOS开发——新特性篇&swift新特性(__nullable和__nonnull)

    swift新特性(__nullable和__nonnull) 最近在看老师写代码的时候经常遇到两个陌生的关键字,但是当我在我的电脑上敲得时候就是敲不出,后来才知道这是为了swift与OC混编的时候产生 ...

  4. Kotlin新语言简介和快速入门知识点

    Kotlin新语言简介和快速入门知识点 简介:Kotlin是最近由JetBrains发布的一种基于JVM的编程语言,已经被Google宣布为开发Android App的一级语言Kotlin有着与Jav ...

  5. Atitit.业务系统的新特性 开发平台 新特性的来源总结

    Atitit.业务系统的新特性 开发平台 新特性的来源总结 1.1. 语言新特性(java c# php js python lisp c++ oc swift ruby  go dart1 1.2. ...

  6. C# 3.0新语言特性和改进(一)

    引言 关于C#3.0的特性,园子里已经有了一大把,可能大家都很熟悉了,虽然本人开发中使用过,但自己还是需要记录一下,总结一下.同时也是后面写Linq知识的基础.希望有兴趣的朋友,可以看看. C# 3. ...

  7. Go语言开发环境配置

    一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014 ...

  8. windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境

    windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境   http://rongmayisheng.com/post/windows%E4%B8%8B%E7%94%A ...

  9. swift objective-及c语言 混编

    在xocde6出来我们大部分代码都是用objective-c写的(部分C/C++),现在出生来了一个新的语言叫swift,那么如何既能使用我们之前的代码,还可以使用新语言呢, 本文就此做一下说明. 关 ...

随机推荐

  1. Mac下Qt连接MySQL 驱动问题

    Mac OS X下Qt的mySQL driver编译安装 原创文章,采用CC协议发布,转载请注明: 转载自canX.me 本文链接地址: Mac OS X下Qt的mySQL driver编译安装 – ...

  2. 关于ubuntu16.04给firefox安装flash的补充

    这两天把自己的老笔记本安装了ubuntu的16.04版本,关于给firefox安装flash player的方法,网上有很多,但不知道是版本还是其它原因,他们文章都出现目录错误的问题,我个人由于是ub ...

  3. NeralJS需求整理及思路

    NeralJs希望通过解析json数据,动态创建和渲染报表,每个报表呈现一定时间范围的数据,通过使用表格图表等不同的方式,使数据的呈现不死板,且更容易看出规律. 说通俗点,就是动态在一个区域内生成多张 ...

  4. SQL从入门到基础 - 05 数据分组、Having语句

    一.数据分组 1. 按照年龄进行分组统计各个年龄段的人数: Select FAge,count(*) from T_Employee group by FAge; 2. Group by子句必须放到w ...

  5. eclipse使用和优化配置

    一.简介 eclipse 可谓是Java开发界的神器,基本占据了大部分的Java开发市场,而且其官方还对其他语言提供支持,如C++,Ruby,JavaScript等等.为 什么使用它?我想离不开下面的 ...

  6. How can I save HICON to an .ico file

    refer:http://stackoverflow.com/questions/2289894/how-can-i-save-hicon-to-an-ico-file answer1: #inclu ...

  7. 网狐6603 cocos2dx 棋牌、捕鱼、休闲类游戏《李逵捕鱼》手机端完整源码分析及分享

    该资源说明: cocos2d 棋牌.捕鱼.休闲类游戏<李逵捕鱼>手机端完整源码,网狐6603配套手机版源码,可以选桌子,适合新手学习参考,小编已亲测试,绝对完整可编译手机端,下载后将文件考 ...

  8. jQuery 幻灯片 ----摘录

    Cloud Carousel (演示 | 下载) ShineTime (演示 | 下载) Nivo Slider (演示 | 下载) Interactive Photo Desk (演示 | 下载) ...

  9. JavaScript文本框统计字数

    <html> <head> <title>enter</title> <script language="javascript" ...

  10. XML DOM 遍历Xml文档

    1.xml文档内容: <?xml version="1.0" encoding="utf-8" ?> <bookstore> <b ...