Swift 基本数据类型--数据类型

内置数据类型

Swift 为程序员提供内置以及用户定义的种类数据类型。 以下是声明变量使用最频繁的基本数据类型的列表:

  • Int 或 UInt - 这是用于整数。更具体地可以使用Int32,Int64来定义32或64位有符号整数,其中作为UInt32或UInt64用来定义32或64位无符号整数的变量。 For example, 42 and -23.

  • Float - 这是用来表示一个32位浮点数,一般用于使用较小的小数点数字。 例如:3.14159,0.1,和 -273.158。

  • Double - 这是用来表示一个64位浮点数,用于非常大的浮点值。  例如: 3.14159, 0.1, 和 -273.158.

  • Bool - 这代表一个布尔值,真或假。

  • String - 这是有序字符集合。例如, "Hello, World!"

  • Character - 这是一个单字符字符串。例如, "C"

  • Optional - 这表示可以容纳一个值或没有任何值的变量。

有下列有关整数类型要点:

  • 在32位的平台上,Int 大小与 Int32 的大小相同。
  • 在64位的平台上,Int 大小与 Int64 的大小相同。
  • 在32位的平台上,UInt 的大小与 UInt32 的大小相同。
  • 在 64 位的平台上,UInt 的大小与 UInt64 的大小相同。
  • Int8, Int16, Int32, Int64 可以用来表示 8 Bit, 16 Bit, 32 Bit 和 64 Bit 形成有符号整数。
  • UInt8, UInt16, UInt32 和 UInt64 可以用来表示 8 Bit, 16 Bit, 32 Bit 和 64 Bit 形成无符号整数。也就是正数

绑定值

下表显示变量类型,需要多少内存存储此值在存储器中,在这种类型的变量可以存储最大值和最小值。

类型典型的位宽典型范围
Int81byte-127 ~ 127
UInt81byte0 ~ 255
Int324bytes-2147483648 ~ 2147483647
UInt324bytes0 ~ 4294967295
Int648bytes-9223372036854775808 ~ 9223372036854775807
UInt328bytes0 ~ 18446744073709551615
Float4bytes1.2E-38 to 3.4E+38 (~6 数字)
Double8bytes2.3E-308 to 1.7E+308 (~15 数字)

注:Int这种类型并未专门制定整形的长度,Int型所占内存空间与当前平台的原生字长相同---对于32位平台,Int型与Int32型的长度相同;对于64位平台,Int型与Int64型长度相同,程序可以通过访问不同证书类型的min和max属性来获取对应类型的最大值和最小值
为了提高数值(包括浮点型)的可读性,Swift允许为数值(包括浮点型)增加下弧线作为分隔符,也可以在数值前添加额外的零。这些下划线和零并不会影响数值本身。例如:

var int:Int = 2_999_999_999

let price = 0079
let android = 0109

数值型之间的类型转换

浮点型雨整形之间的转换
var a:Int = 11
var b:Double = Double(a)
var c:Float = Float(11)

Double保留两位小数,需要对Double进行扩展:

extension Double {

    func format(f: String) -> String {

        return String(format: "%\(f)f", self)

    }

}

let myDouble = 1.234567 println(myDouble.format(".2”))
String转换Double:

let strVar : String = "3.14"

var string = NSString(string: strVar)
string.doubleValue // 转换成double

string.floatValue // 转换成float

类型别名

以从现有类型使用typealias创建一个新的名称。以下是使用简单 typealias 的语法来定义新类型:

typealias newname = type

例如,下面告诉编译器Feet 是 Int 的另一个名字:

typealias Feet = Int

现在,下面的声明是完全合法的,并创建一个整型变量为 distance:

import Cocoa

typealias Feet = Int
var distance: Feet = 100
println(distance)

当我们使用 playground 运行上面的程序,到以下结果。

100

类型安全

Swift 是一种安全的语言,这意味着,如果代码的一部分需要一个字符串, 那么不能错误地传递一个int。

由于 Swift 是类型安全的,当类型检查时它执行编译代码并标志类型不匹配的错误。

import Cocoa

var varA = 42
varA = "This is hello"
println(varA)

当我们编译上面的程序它产生以下编译时错误。

Playground execution failed: error: :6:6: error: cannot assign to 'let' value 'varA'
varA = "This is hello”

类型推断

在它编译代码时,类型推断使编译器自动推导出特定表达式的类型, 简单地通过检查所提供的值。Swift 采用类型推断制定出合适的类型如下
import Cocoa

// varA is inferred to be of type Int
var varA = 42
println(varA)

// varB is inferred to be of type Double
var varB = 3.14159
println(varB)

// varC is also inferred to be of type Double
var varC = 3 + 0.14159
println(varC)

当我们使用 playground 运行上面的程序,得到以下结果。

42
3.14159
3.14159


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值