Swift 新语言开发
全书文件夹:
一、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 新语言开发的更多相关文章
- IOS开发-Swift新语言初见
Safe Swift pairs increased type safety with type inference, restricts direct access to pointers, and ...
- 现代的新语言--Swift初探
新的语言 WWDC简短的介绍,新的语言Swift就问世了,尽管新语言的名字导致贴吧下歌手粉丝和开发人员们争抢地盘- -,只是雨燕就是这么来了. WWDC keynote里给Swift打上了非常多标签: ...
- iOS开发——新特性篇&swift新特性(__nullable和__nonnull)
swift新特性(__nullable和__nonnull) 最近在看老师写代码的时候经常遇到两个陌生的关键字,但是当我在我的电脑上敲得时候就是敲不出,后来才知道这是为了swift与OC混编的时候产生 ...
- Kotlin新语言简介和快速入门知识点
Kotlin新语言简介和快速入门知识点 简介:Kotlin是最近由JetBrains发布的一种基于JVM的编程语言,已经被Google宣布为开发Android App的一级语言Kotlin有着与Jav ...
- Atitit.业务系统的新特性 开发平台 新特性的来源总结
Atitit.业务系统的新特性 开发平台 新特性的来源总结 1.1. 语言新特性(java c# php js python lisp c++ oc swift ruby go dart1 1.2. ...
- C# 3.0新语言特性和改进(一)
引言 关于C#3.0的特性,园子里已经有了一大把,可能大家都很熟悉了,虽然本人开发中使用过,但自己还是需要记录一下,总结一下.同时也是后面写Linq知识的基础.希望有兴趣的朋友,可以看看. C# 3. ...
- Go语言开发环境配置
一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014 ...
- windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境
windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境 http://rongmayisheng.com/post/windows%E4%B8%8B%E7%94%A ...
- swift objective-及c语言 混编
在xocde6出来我们大部分代码都是用objective-c写的(部分C/C++),现在出生来了一个新的语言叫swift,那么如何既能使用我们之前的代码,还可以使用新语言呢, 本文就此做一下说明. 关 ...
随机推荐
- springmvc的讲解
概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...
- IE浏览器下a标签嵌套img标签默认带有边框
最近写在线主页时发现IE浏览器下a标签嵌套img标签默认带有边框: 解决办法:img{border:0 none;} 注意,严格意义上0和none都要加上!
- 刚安装的ios app 会带有教你功能使用的特效说明 做法
这个功能使用说明是每次app更新或者第一次安装都需要显示的.你可以给每个需要显示的说明界面设置一个BOOL变量控制它是否显示.在applicationDidFinishLaunching的函数中判断a ...
- java新版中唤醒指定线层对象
import java.util.concurrent.locks.*; class Do9 { public static void main(String[] args) { Resource r ...
- bestcoder r44 p3 hdu 5270 ZYB loves Xor II
这是昨晚队友跟我说的题,不知道当时是什么玄幻的事件发生了,,我看成了两两相乘的XOR 纠结了好长时间间 不知道该怎么办 今天早上看了下这道题,发现是两两相加的XOR 然后就想了想昨晚的思路 发现可做 ...
- uva 10370 - Above Average
#include <iostream> #include <cstdio> using namespace std; int main() { unsigned C, N, t ...
- 总结JavaScript输出内容(document.write)
document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用“”括起,直接输出""号内的内容.<script ...
- 复习css3的部分属性
利用css3实现一个半月形的西瓜,利用queue实现吃西瓜的动画.练习例子 css3: 1.圆角 border-radius:100%; border-top-left-radius:5px; 2.变 ...
- php字符串处理之全角半角转换
半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)半角字符unicode编码 ...
- 使用Android平板编程,执行linux命令
android有一些应用支持开发, AIDE 介绍http://www.wandoujia.com/apps/com.aide.ui https://play.google.com/store/app ...