Swift 笔记:数据类型


常用数据类型

  • Int: 整数型
  • Float: 32 位浮点数
  • Double: 64 位浮点数
  • Boolean: 布尔值
  • String: 字符串
  • Tuples: 元组

Int

一般来说,不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型 Int,长度与当前平台的原生字长相同:

  • 在32位平台上,IntInt32 长度相同。
  • 在64位平台上,IntInt64 长度相同。

除非需要特定长度的整数,一般来说使用 Int 就够了,这可以提高代码一致性和可复用性。

对于比较大的数值,Swift 可以使用下划线 _ 来分隔位数:

let a = 1_000_000
let b = 1_000_000

UInt

Swift 也提供了一个特殊的无符号类型 UInt,长度与当前平台的原生字长相同。

注意:
尽量不要使用UInt,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用Int,即使你要存储的值已知是非负的。统一使用Int可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断。

浮点数

Double 表示 64 位浮点数,Float 表示 32 位浮点数。Double 精确度很高,至少有 15 位数字,而 Float 只有 6 位数字,在两种类型都匹配的情况下,优先选择 Double

类型转换

值不能被隐式转换,如果需要转换为其他类型,必须进行显式转换:

let label = "The width is "
let width = 90
let widthLabel = label + String(width)

也可把值写到括号中,同时在括号之前写一个反斜杠来进行类型转换:

let widthLabel = label + "\(width)"

布尔值

Swift 有两个布尔常量,truefalse

元组

元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。

let http404Error = ( 404 , "Not Found!" )

元组可以在常量或变量名后使用冒号加括号的形式标注数据类型:

let http200Status: ( Int , String ) = ( 200 , "OK!" )

可以将一个元组的内容分解(decompose)成单独的常量和变量:

let ( errorCode , errorMessage ) = http404Error

也可以通过下标来访问元组中的单个元素,下标从零开始:

let point = ( 5 , 2 )
point.0
point.1

可以在定义元组的时候给单个元素命名。给元组中的元素命名后,就可以通过名字来获取这些元素的值:

let point = ( x: 5 , y: 2)
point.x
point.y

也可以在标注数据类型时给单个元素命名:

let point: ( x:Int , y:Int ) = ( 6 , 2 )
point.x
point.y

元组分解时需要忽略的元素使用下划线 _ 来标记:

let loginResult = ( true , "Ryan" )
let ( isLoginSuccess , _ ) = loginResult
if isLoginSuccess {
    print("Login Success!")
    }
else{
    print("Login Failed!")
    }

输出函数:print

使用函数 print(_:separator:terminator:) 来输出当前常量或者变量的值。

var x = 1 , y = 2 , z = 3

print ( x , y , z , separator:"---")
// 输出结果为 1---2---3

print ( x , terminator:":)")
// 输出结果为 1:)

separatorterminator 参数具有默认值,调用时可以忽略。默认情况下,separator 使用空格作为间隔符,terminator 使用换行符来结束当前行。如果不想换行,可以传递一个空字符串给 terminator 函数:

print ( someValue , terminator:"" )

#EOF