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:"" )

Swift 笔记:常量与变量


使用 let 声明常量,使用 var 声明变量。常量的值一旦设定就不能改变,而变量的值可以随意更改。

命名

可以使用任意字符作为常量或变量名称,包括 Unicode 字符。为保证代码的可读性,通常情况下常量或变量名称使用除首单词外其余单词首字母大写的方式命名:

let 😀 = "smile"
let myWebsite = "https://iiiryan.com"

常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。

一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。

分号

单行语句末尾可以不添加分号 ;,但有一种情况下必须要用分号,即你打算在同一行内写多条独立的语句:

let a = 5 ; print(a)
// 输出 a

单行语句可以同时声明多个变量或常量,使用 , 分隔。

var myVariable = 10
let myConstant = 8

var a = 1 , b = 2 , c = 3

类型标注

Swift 是一种强类型语言,编译器会根据声明赋值自动推断数据类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。

var str = "Hello, Swift!"
var myWebsite: String = "https://iiiryan.com"

注释代码

单行注释以双正斜杠 // 作为起始标记,多行注释以 /* 开始,以 */ 结束。
多行注释可以嵌套在其它的多行注释之中