文章列表
本文来自于疯子们的开源图书
<!--EndFragment-->
字典是存储多个相同类型值的容器。每个值用一个唯一的键进行标识,这个键就是字典中的标示符。与数组中的元素不同,字典中的元素没有固定的顺序。当你想在字典中查询某个值的时候,可以根据他们的键来进行查询,这点跟现实中在字典上查询某个单词很类似的。
Swift中字典所能存储的键值都是非常明确的。与Objective-C中的NSDictionary和NSMutableDictionary不同,他们可以使用任何类型的对象作为键和值,而且没有提供关于这些对象类型的信息。在Swift中,某个字典类型所能存储的键 ...
本文来自于疯子们的开源图书
<!--EndFragment-->
数组用顺序列表来存储多个相同类型的值。相同的值可以多次出现在数组中的不同位置。
Swift 数组在存储值的时候,一定要指明类型。它们不同于Objective-C的NSArray和NSMutableArray类能够存储任何种类的对象,而且不用提供任何关于它们返回对象性质的相关信息。在Swift中,特定数组能够存储值的类型是明确的,要么通过一个明确的类型注解,要么通过类型推断,并且不必是一个类类型。例如,如果你创建一个Int类型的数组,你不能插入任何Int类型之外的值进那个数组。Swift数组是类 ...
本文来自于疯子们的开源图书
<!--EndFragment-->
Swift提供了两种集合类型:数组和字典,用作存储多个值的集合。数组用来存储具有相同类型值的有序集合。字典用来存储具有相同类型值的无序集合,它可以通过一个唯一标识符(也叫做键)查询和引用。在Swift中,数组和字典存储的值和键的类型都是非常明确的。这就表示你不能往数组或字典中插入一个类型错误的值。这也表示你可以确定你从数组或字典中取回的值的类型是什么。Swift使用这种明确类型的集合可以确保代码总是对它能处理的类型是清楚的,从而确保你能在代码开发阶段就轻易的捕获任意类型的不匹配。
注意:Swi ...
本文来自于疯子们的开源图书
<!--EndFragment-->
Swift的String类型是值类型。如果你创建一个新的String值,把它传递给一个函数或方法,或者被赋给一个常量或变量时,字符串值的拷贝的。在每种情况下,会创建一个当前字符串的副本,传递的或者是赋值的都是新新创建的副本,而不是原来的版本了。值类型在“结构体和枚举都是值类型”当中有详细的描述。
注意:
这个行为不同于在Cocoa的NSString。当你在Cocoa中创建了一个NSString实例,并且把它传给一个函数或方法或把它赋给一个变量,你总是传递或赋一个引用给相同的NSString. ...
本文来自于疯子们的开源图书
<!--EndFragment-->
通过将字符串的值赋给一个变量(能够被修改的情况),或者一个常量(不能被修改的情况),就可以指定它能否被修改:
注意:
这个方法不同于在Objective-C和Cocoa里面的字符串可变,在Objective-C和Cocoa中你可以分别选择两个类(NSString和NSMutableString)来指示一个字符串是否可变。
本文来自于疯子们的开源图书
<!--EndFragment-->
要想创建一个空字符串来构建一个更长的字符串,要么赋一个空字符串给变量,要么用构造器来初始化一个新的字符串:
你可以通过字符串的isEmpty属性来判断一个字符串值是否是空的:
本文来自于疯子们的开源图书
<!--EndFragment-->
你可以在代码中使用事先定义好的String值作为字符串。字符串是用双引号(“”)包住的固定的字符序列。字符串可以用于给常量或变量提供一个初始值:
注意到Swift推断常量someString是String类型的,因为给它初始化的时一个字符串值。字符串可以包含以下特殊字符:
转义字符\0(空字符),\\(反斜线),\t(tab键),\n(换行),\r(回车),\"(双引号)和\'( 单引号)
单字节Unicode标量,写为\xnn,nn的地方是两个十六进制数字
两字节Unico ...
本文来自于疯子们的开源图书
<!--EndFragment-->
字符串是由多个字符构成的序列,比如"hello,world"或者"albatross"。Swift用String类型代表字符串,而String又代表一个Character类型的集合。
Swift的String和Character类型提供一种快速的,符合Unicode标准的方式来处理代码中的文本。字符串创建和操作的语法非常的简便且可读性很强,与C语言字符串的语法很相似。字符串的连接只需要把两个字符串用“+”操作符加在一起就可以,并且可以通过选择常量和变量来 ...
本文来自于疯子们的开源图书
<!--EndFragment-->
使用let来定义常量,使用var来定义变量。常量的值在编译时不需要知道,但是你必须明确的给你赋一次值。这就意味着你使用常量给某个值命名,一旦赋值之后就可以到处使用了。
常量或者变量必须与你要赋予的值具有相同的类型。然而,你不必每次都准确的声明类型。在你创建常量或者变量的时候,提供一个值,这样编译器就可以自己推断它的类型了。在上面的例子中,编译器就推断出myVariable是一个整型的,因为它的初始值就是整型的。
如果初始值没有提供足够的信息(或者干脆就没有初始值),可以在变量后面指定类型,使用冒号隔 ...
本文来自于疯子们的开源图书
<!--EndFragment-->
编程语言的学习传统建议我们,第一个要写的程序应该是向屏幕打印一下"Hello World".在Swift当中,这就是一行代码的事,
printlh("Hello ,world")
如果你用C或者Objective-C写过代码的话,这种语法对你应该很熟悉。在Swift当中,这行代码就是一个完成的程序了。你根本不需要导入单独的库来实现I/O,字符串处理这些功能。把代码写在全局作用域内,那么这些就是程序的入口了,因此你根本就不需要main 函数了。你也不用在每句话 ...
<!--EndFragment-->
本文来自于疯子们的开源图书
<!--EndFragment-->关于Swift
Swift是一种新的用于开发iOS和OS X 应用的语言,构建在C和Objective-C之上的,没有了C语言的兼容性问题.Swift采用了安全编程模式,同时也融入了许多语言(Javascript ,Python)的优秀特性,使得编程变得更加的简单,灵活和富有趣味性。依托于成熟和钟爱的Cocoa和Cocoa Touch框架,成就了Swift 的简洁设计,它给了我们重新认识软件开发过程的机会。
Swift 其实已经开发 ...
本文来自于疯子们的开源图书
<!--EndFragment-->
本书的完整版权归Apple公司所有,本书用于学习和交流。
本书是Swift官方文档的中文翻译版,目前还在不断的完善当中,还有一些地方翻译的不到位,欢迎大家积极参与翻译与修订工作。
红色标注的文字为待进一步翻译的段落。