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采用安全的编程模式,增加了现代功能使编程更容易、更灵活、更有趣。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里这只需要一行来完成。

  

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

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

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

2.1.简单值

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

  

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

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

  

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

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

  

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

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

  

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

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

  

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

  

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

  

Swift 新语言开发,布布扣,bubuko.com

时间: 2024-08-07 03:26:49

Swift 新语言开发的相关文章

现代的新语言--Swift初探

新的语言 WWDC简短的介绍,新的语言Swift就问世了,虽然新语言的名字导致贴吧下歌手粉丝和开发者们争抢地盘- -,不过雨燕就是这么来了. WWDC keynote里给Swift打上了很多标签: Closures,Generics,Namespaces,Type inference,Multiple return types 闭包,泛型支持,支持命名空间,去除隐式类型转换,多返回值等这些优秀的特性让这门语言显得现代和便捷,再加上学习了很多其他语言类似Go,JavaScript等等的优秀语法,它

如何学习一门新的开发语言

作为一名软件研发,由于工作的需要,难免需要接触新的知识,新的技术,新的开发语言.有时候接触这些新的东西,不知道如何下手.每个人学习的方式都不一样,可以借鉴,不能完全照搬.最近在学习Android,我觉得可以按照以下步骤去入门. 1)准备一本入门的电子书或者买一本入门书籍,先大概看完能将开发环境搭建起来 2)将简单的Hello,World程序弄出来以及熟悉一下整体的程序框架 3)同时看一下入门视频的讲解,汲取一下别人理解的知识 4)会加日志调试程序 5)将入门书中的demo敲一遍[或者入门的视频的

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

swift新特性(__nullable和__nonnull) 最近在看老师写代码的时候经常遇到两个陌生的关键字,但是当我在我的电脑上敲得时候就是敲不出,后来才知道这是为了swift与OC混编的时候产生的一个新特性,就很认真的研究了一下. 在swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如view?和view!.而在Objective-C中则没有这一区分,view即可表示这个对象是optional,也可表示是non-optioanl. 这样就会造成一个

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

Atitit.业务系统的新特性 开发平台 新特性的来源总结 1.1. 语言新特性(java c# php js python lisp c++ oc swift ruby  go dart1 1.2. 流行lib.frmawork  新特性 jdk clr framework 新特性 (jq   Servlet2 1.3. Ide 新特性( eclipse vs netbea jetbrain2 1.4. Vm  新特性 clr  jvm(jvm好像没有独立的版本号,继承在jdk里面2 1.5.

在Windows平台搭建C语言开发环境的多种方式

新接触C语言,如何进行C语言开发环境的搭建值得思考并整理 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 - 极客学院 一.在Windows平台配置GNU环境 二.在Windows平台使用Sublime Test开发C语言程序 三.在Windows平台使用VisualStudio开发C语言程序 四.在Windows平台搭建EclipseCDT集成开发环境 五.在Windows平台搭建Clion集成开发环境 一.在Windows平台配置GNU环境 GNU http://www.g

Go语言开发环境配置

一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014年,Go项目拥有了上百的核心贡献者,其生态圈中拥有了数不尽的第三方库和工具(https://godoc.org/),更有很多大公司开始或迁移到go语言,一些重量级的开源云项目,诸如Docker和Kubernetes 都是用Go语言实现的,一些运作基础设置的公司,诸如Google.CloudFlare

创造新语言(1)——确定架构

最近写C代码很不爽,感觉很多地方十分冗余,希望能够改进一下,于是诞生了这个想法,利用学过的编译原理的前端知识,构建一门新语言的编译器,然后将新语言翻译成为标准的C89. 这样,即保障了可用性,同时又大大减轻了后端的工作量,何乐而不为呢? 我说明一下选择C89的原因,首先,C语言的扩展不多,主要是C++和Objective-C.编译到的目标语言平台,如果是C++,太重了,难以做操作系统级的编程,但如果想让编译器设计的十分轻巧,那么就要尽量回避重型语言. Java也是一个不错的选择,但其平台上已经有

(转载)Go语言开发环境配置

一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014年,Go项目拥有了上百的核心贡献者,其生态圈中拥有了数不尽的第三方库和工具(https://godoc.org/),更有很多大公司开始或迁移到go语言,一些重量级的开源云项目,诸如Docker和Kubernetes 都是用Go语言实现的,一些运作基础设置的公司,诸如Google.CloudFlare

python是c语言开发的

python是c语言开发的. #c语言,没有字符串:字符串使用字符组表现 hello —五个字符 字符数组 [’h’,’e’,…’o’] 所以python中如果对一个字符串进行修改,就是在内存中开辟了一块内存. 比如hello 改成helloaa 并不是将[’h’,’e’,’l’..,o]数组后面加上[a,a] 而是内存中开辟一个空间把前面的hello重写后加上[a,a] 即是:[’h’,’e’,’l’..,’o’,’a’,’a’] 那为什么不是添加,而是重新开辟空间呢? 因为内存的使用地址是连