Swift 数据类型

来源:互联网 发布:童年电视剧主题曲 知乎 编辑:程序博客网 时间:2024/06/06 19:47

一、内置数据类型

数据类型:
①、Int
②、UInt
③、浮点数
④、布尔值
⑤、字符串
⑥、字符
⑦、可选类型

1、Int

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

  • 在32位平台上,Int和Int32长度相同。
  • 在64位平台上,Int和Int64长度相同。

除非你需要特定长度的整数,一般来说使用Int就够了。这可以提高代码一致性和可复用性。即使是在32位平台上,Int可以存储的整数范围也可以达到-2,147,483,648~2,147,483,647,大多数时候这已经足够大了。

// int整型  let age:Int = 30 print(age) 

2、UInt

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

  • 在32位平台上,UInt和UInt32长度相同。
  • 在64位平台上,UInt和UInt64长度相同。
// UInt整型  let age:UInt = 30 print(age) 

3、浮点型

浮点数是有小数部分的数字,比如3.14159,0.1和-273.15。
浮点类型比整数类型表示的范围更大,可以存储比Int类型更大或者更小的数字。Swift 提供了两种有符号浮点数类型:

  • Double表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
  • Float表示32位浮点数。精度要求不高的话可以使用此类型。

注意:
Double精确度很高,至少有15位数字,而Float最少只有6位数字。选择哪个类型取决于你的代码需要处理的值的范围。

// float浮点数  let money:Float = 125.32  print(money)  

4、布尔值

Swift 有一个基本的布尔(Boolean)类型,叫做Bool。布尔值指逻辑上的值,因为它们只能是真或者假。Swift 有两个布尔常量,true和false。

// bool布尔值(必须使用truefalselet isValid:Bool = true  print(isValid)

5、字符串

字符串是字符的序列集合。

// string字符串  let name = "DevZhang"  print(name)  

6、字符

字符指的是单个字母。

// 字符  let charName: Character = "z"  print(charName)  

7、可选类型

使用可选类型(optionals)来处理值可能缺失的情况。可选类型表示有值或没有值。

//可选类型let name: String?

二、类型别名

类型别名对当前的类型定义了另一个名字,类型别名通过使用 typealias 关键字来定义。语法格式如下:

typealias newname = type

例如以下定义了 Int 的类型别名为 Feet:

typealias Feet = Int

现在,我们可以通过别名来定义变量:

typealias Feet = Intvar distance: Feet = 100print(distance)

我们使用 playground 执行以上程序,输出结果为:

100

三、类型安全

Swift 是一个类型安全(type safe)的语言。
由于 swift 是类型安全的,所以它会在编译你的代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以让开发者在开发的时候尽早发现并修复错误。

四、类型推断

当你要处理不同类型的值时,类型检查可以帮你避免错误。然而,这并不是说你每次声明常量和变量的时候都需要显式指定类型。
如果你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型。

例如,如果你给一个新常量赋值42并且没有标明类型,Swift 可以推断出常量类型是Int,因为你给它赋的初始值看起来像一个整数。当然,你也可以直接指定变量的类型。

let meaningOfLife = 42// meaningOfLife 会被推测为 Int 类型

同理,如果你没有给浮点字面量标明类型,Swift 会推断你想要的是Double:

let pi = 3.14159// pi 会被推测为 Double 类型

当推断浮点数的类型时,Swift 总是会选择Double而不是Float。
如果表达式中同时出现了整数和浮点数,会被推断为Double类型:

let anotherPi = 3 + 0.14159// anotherPi 会被推测为 Double 类型

原始值3没有显式声明类型,而表达式中出现了一个浮点字面量,所以表达式会被推断为Double类型。

原创粉丝点击