关于Swift
Swift是为IOS和OSX应用制定的新编程语言,吸取C和Objective-C语言的精粹,但不损失与C语言的兼容性。Swift采用安全编程模型、加入了各种现代编程语言特性,使得该语言更易被掌握、更具扩展性,用起来更有趣。Swift语言的奠基石是已经成熟的、并为大家所喜爱的Cocoa和Cocoa Touch框架,新语言使大家可以尽情畅想新软件开发的机遇。
Swift沉积了多年的研发成果,苹果公司为提供高效Swift语言编译器、调试器和基础架构打下了坚实基础。我们使用Automatic Reference Counting(ARC)技术简化内存管理。我们的框架设计,建立在Cocoa稳固的基础框架上。已经彻底完成了标准化和现代化的改进。Objective-C的改进支持了块定义,集合语法、模块,使语言框架合理集成了现代语言技术。要感谢前人的基础工作,使我们现在能够向大家介绍苹果公司未来的软件开发语言。
对Objective-C开发者来说,Swift是比较容易上手的,它采用和Objective-C类似的参数命名规则和强大的动态对象模型。它提供无缝的使用Cocoa框架和与Objective-C代码混合即用的互操作特性。构建在这些基础上,Swift语言带来了许多新的特性、也重新集成了过程式语言和面向对象语言功能。
对新学习编程的人来说,Swift语言是门友好的语言。一门作为工业前沿的系统编程语言,Swift语言能够象脚本语言一样易于表述和理解。它支持“playgrounds”技术,作为一项革新功能,开发者可以使用它进行Swift的即时运行和直观地看到结果,而不用从头重新编译运行程序。
Swift集成了现代计算机语言的智慧,汇入了苹果公司软件研发的精粹。Swift编译器针对性能进行了优化,而语言本身也针对现有的开发环境进行了优化,功能和性能得到平衡和发展。它能够设计小到“hello world”程序、大到操作系统级别的程序。所有这一切使swift语言对开发者和苹果公司来说都将更有吸引力。
使用Swift语言编写iOS和OS X应用将非常愉悦,它将继续发展新的语言特性、包含更多功能。我们对Swift的发展雄心勃勃,也迫不及待地将这个工具送给大家去使用、去创造。
Swift入门之旅
学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印“Hello world”的程序开始的。那在Swift,我们使用一句话来实现它:
println("Hello, world")
如果你编写过C或者Objective-C语言,Swift中的这个语法看起来便很熟悉,这句话却是一个完整的程序。你无须为了得到输入/输出或字符串处理去导入一个独立的功能库。编写全局代码通常用于程序的进入点。你不需要写一个main函数,你也不需要为每个语句写个逗号作为结尾。
这个入门之旅将给你足够的信息去开始编写Swift代码,你可以实现许多的编程任务。这个过程中如果你有些内容不理解也不要担心,我们将在本书的其他章节细节处为您解释。
批注:
为了更好的体验开发,请在Xcode中使用playground编辑这个章节的代码。Playgrounds允许你在一边编辑代码的同时看到代码的即时运行结果。
简单赋值:
用于你把一个常量和变量作为成变量。常量的值不必每次都传给编译器,但你必须提前赋个数值给它。就是说常量可以赋值一次而多处引用。
var myVariable = 42
myVariable = 50
let myConstant = 42
相同的类型才能进行常量和变量的赋值,但是,你不用每次都显式地定义类型,编译器可以自动判断。创建常量或变量的时候顺便赋值可以让编译器知道它属于什么类型。上面的例子,编译器指定myVariable变量属于整数类型,因为它用一个整数进行初始化。
如果初始值不能表达足够的类型信息(或没有初始值),则在变量后面加一个冒号和指定的类型。
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
练习:
显式创建一个值为4的浮点类型的常量
赋值不会自动隐式地变成另外一种类型,如果你需要把一个赋值变更到另外一种类型,你需要显式地创建目标类型的实例。
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
练习:
试着把最后一行的字符串转换声明去掉,看看会出什么错误?
这里有更简便的方法把数值包含在字符串里面:把数值写在括号里面,把斜杠写在括号前面,示例如下:
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
试验:
在字符串中使用 \()包含一个浮点计算结果,同时也包含对某个人的名字和祝词。
使用方括号([])创建数组和字典,然后在方括号中使用索引下标存取各元素的值。
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 = [] // 购物和放置各种东西.
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/