您的位置:首页 > 移动开发 > Swift

The Swift Programming Language中文版 ----Language Guide(二)

2014-06-05 19:26 579 查看
8.分号

与其他语言不同的是,Swift并不强制要求你在一行代码末尾加一个分号。但如果在一行中有两句代码,则必须在第一句代码后加上分号。

let cat = "cat"; println(cat)
// prints "cat"


9.整数

整型即为整数,没有小数部分,如42和-23。整数分有符号和无符号。

Swift提供了提供了有符号和无符号整数8,16,32,和64位的形式。这些整数遵循类似于C的命名规则,一个8位无符号整数类型为UInt8,而一个32位带符号整数为Int32类型。像所有类型的斯威夫特,这些整数类型已资本化的名字。和Swift其他类型一样。这些整型都有一个含有大写字母的名字。

10.整数界限

你可以通过访问一个整型的max或min属性来获取它的最大值或最小值。

let minValue = UInt8.min  // minValue is equal to 0, and is of type UInt8
let maxValue = UInt8.max


这些属性的值都是适当大小的数字类型。

11.Int(整型)

在大多数情况下,你并不需要在代码中确定整数的指定大小。Swift提供了另外一个数据类型-Int。它与当前平台原生类型的大小相同。

在32位的平台中,Int与Int32相同。

在64位的平台中,Int与Int64相同。

除非你需要使用特定大小的整数。一般情况下使用Int来代替integer。Int可以存储2,147,483,647到-2,147,483,648之间的任何数。

12.UInt(无符号整型)

Swift还提供了一个无符号整数类型Uint,它的大小与当前平台的原生字大小相同。

在32位的平台中,UInt与UInt32相同。

在64位的平台中,UInt与UInt64相同。

13.浮点数

浮点数与小数部分的数字,如3.14159,0.1,和-273.15。浮点类型可以表示比整数类型更广泛的范围内的值,并且可以存储数字,

是更大或更小的比可以存储在一个Int。 SWIFT提供两个有符号浮点数类型:

•双代表一个64位浮点数字。使用它时,浮点值必须是非常大的,或 特别精确的。

•浮点表示一个32位浮点数字。使用它时,浮点值不需要64位精度。
注:double有至少15位十进制数字的精确度,而浮动的精度可以低至6位小数。使用适当的浮点类型取决于你你的代码中需要的值的性质和范围。

14.类型安全和类型判断

Swift是一种类型安全的语言。类型安全的语言鼓励你要搞清楚值的类型代码可以工作。如果您的代码部分需要一个字符串,你不能错误地传递一个诠释。

因为Swift是类型安全的,它会执行编译你的代码和标志的任何类型不匹配的错误时类型检查。这使您能够捕获并尽可能早地在开发过程中修正错误。

类型检查帮助您避免错误,当您正在使用不同类型的值。但是,这并不意味着你必须指定每一个常量和变量所声明的类型。如果不指定值,你需要的类型,Swift使用类型推理来制定出相应的类型。类型推断使编译器自动推断出特定的表达式的类型时,它编译你的代码,只需通过检查您提供的值。

因为类型推断,斯威夫特需要少得多的类型声明不是语言,如C或Objective-C 。常量和变量仍然显式类型,但大部分指定其类型的工作是为你做。

当你声明一个常量或变量的初始值类型推断是特别有用的。这通常是通过赋予文本值(或文字)到所声明的地步了常量或变量进行。 (字面上的值是直接出现在源代码中的值,如下面的例子42和3.14159 。 )

例如,如果您指定42到一个新的常数常值,不用说它是什么类型,Swift推断出你想要的常量是一个诠释,因为你已经初始化它与一些看起来像一个整数
let meaningOfLife = 42
// meaningOfLife is inferred to be of type Int


同样,如果你不指定类型的浮点字面值,Swift推断出你想要创建一个Double。

let pi = 3.14159
// pi is inferred to be of type Double
Swift总是选择Double(而非Float)时推断浮点数类型。

如果你把在一个表达式中整数和浮点常量,一个Double类型会从上下文推断:
let anotherPi = 3 + 0.14159
// anotherPi is also inferred to be of type Double


15.整型常量

整型常量可以写成:

•一个十进制数,不带前缀

•一个二进制数,用前缀0b

•一个八进制数,用0°前缀

•一个十六进制数,以0x前缀

所有这些整型常量的有17的十进制值:
let decimalInteger = 17
let binaryInteger = 0b10001       // 17 in binary notation
let octalInteger = 0o21           // 17 in octal notation
let hexadecimalInteger = 0x11


浮点数可以是十进制(不带前缀)或十六进制(以0x前缀)。它们必须始终在小数点的两侧(或十六进制数)。他们也可以有一个可选的指数,由一个大写或小写e表示十进制浮点数表示,或大写或小写p表示十六进制浮点数。

十进制数用exp指数表示时,基数乘以10exp:

• 1.25e2的意思是1.25×102,或125.0.

• 1.25e-2的意思是1.25×10-2,或0.0125.

十六进制数用EXP指数表示时,基部数乘以2EXP:

• 0xFp2的意思是15×22,或60.0.


• 0xFp-2的意思是15×2-2,或3.75.

这些所有的浮点常量都有一个十进制值12.1875。

let decimalDouble = 12.1875
let exponentDouble = 1.21875e1
let hexadecimalDouble = 0xC.3p0
数字文本可以包含额外的格式,来使它们更容易阅读。这两个整数和浮点数可以被填充

额外的零,并且可以包含下划线,用来帮助提高可读性。无论是任何类型的格式都不会影响数字的值。

let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: