个人Swift 3入门笔记(3) | 基本数据类型

全部数据类型名称都要首字母大写。

1. 整型(Int)

整数就是没有小数部分的数字。整数可以有符号(正、负、零)或无符号(正、零)。Swift 提供了 8,16,32 和 64 位的有符号和无符号整数类型。

这些整数类型和 C 语言的命名方式很像,比如 8 位无符号整数类型是UInt8,32 位有符号整数类型是 Int32 。

1.1. 整数范围

let minValue = UInt8.min  // minValue 为 0,是 UInt8 类型
let maxValue = UInt8.max  // maxValue 为 255,是 UInt8 类型

使用 Int.max 这个办法可以很容易查看类型范围。

> Int.max
$R0: Int = 9223372036854775807
> Int.min
$R1: Int = -9223372036854775808
  1. 一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同:
  • 在 32 位平台上,Int 和 Int32 长度相同。
  • 在 64 位平台上,Int 和 Int64 长度相同。
  1. Swift 也提供了一个特殊的无符号类型 UInt,长度与当前平台的原生字长相同: 在 32 位平台上,UInt 和 UInt32 长度相同。 在 64 位平台上,UInt 和 UInt64 长度相同。

2. 浮点数(Float、Double)

浮点数是有小数部分的数字,比如 3.14159 ,0.1 和 -273.15。浮点类型比整数类型表示的范围更大,可以存储比 Int 类型更大或者更小的数字。

  1. Swift 提供了两种有符号浮点数类型:
  • Double 表示 64 位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
  • Float 表示 32 位浮点数。精度要求不高的话可以使用此类型。
  1. Swift 可以自动推断类型,前面说过,Swift 属于类型安全语言,就是在编译时会先检查类型的值是否符合预期,如果不符合不会进行编译。所以为了方便编码,Swift 还加入了类型推断,例如:
let meaningOfLife = 42
// meaningOfLife 会被推测为 Int 类型
let pi = 3.14159
// pi 会被推测为 Double 类型

声明一个变量之后,隐式声明变量之后,swift会自动判断类型并固定,不能再改变。
例如 var x = 23.33 定义之后,编译时 Swift 会认为这是 Double 类型,所以后面不能出现 x = "Text" 这样的赋值,即便出现 x = 20 这样的赋值,实际上也是值为 20.0 的 Double 类型。

3. 布尔值(Bool)

Swift 有两个布尔常量,true 和 false 。
不能用 0 和 1 表示。

4. 元组

4.1. 获取元组的所有值

// 定义一个元组,里面有三个元素。
> var hello=(1,true,"OK")

查看元组 hello 的信息:

hello: (Int, Bool, String) = {
  0 = 1
  1 = true
  2 = unable to read data
}

下面来定义一个元组,用来表示一个二维坐标。

// 定义元组。
var point:(Int,Int) = (1,2)
// 把元组元素分别赋值给 x 和 y 。
let (x,y) = point

打印 x 和 y 两个值分别是 1 和 2 。

4.2. 获取指定元组元素的值

下面定义一个元组,Swift 中是可以使用中文作为变量名称的,下面以“中文元组”为名,定义一个元组:

var 中文元组=(1,2.34,ture,"hello")

返回结果:

中文元组: (Int, Int, Double, Bool, String) = {
  0 = 1
  1 = 2
  2 = 3
  3 = true
  4 = "hello"
}

可以看到有很多类型的元素,现在我们想取得元组第二个元素:

print(中文元组.1)

输出:

2

4.3. 为每一个元组元素指定名称

上面的元组元素默认都是没有名字的,如果元素很多就麻烦了,为每一个元素添加一个自定义的名字,这样就可以使用下面的方式获取指定元素的值:

<元组>.<元素名称>

为每一个元组元素指定名称很简单:

var 指定元素名称 = ( x : 1 , y : 2.34 , z : "hello" )

注意是冒号不是等号,Swift 中只有赋值才会用一个等号(比较数值时用两个等号“==”)。

然后就可以直接使用元素名称来获取元素的值:

指定元素名称.x

上面的方法是赋值的时候指定名称的,实际上也可以在赋值前指定元素名称,两种都可以。

var 指定元素名称二 : ( x : Int , y : Int ) = ( 1 , 2 )

示例:

// 定义
var test:(x:Int,y:Int,z:Int)=(1,2,3)
// 返回
test: (x: Int, y: Int, z: Int) = {
  x = 1
  y = 2
  z = 3
}

4.4. 忽略一些元素的值

使用_符号来忽略元组的一些值,例如:

// 定义
var test = ( true , "HJJ" )
// 使用 _ 符号可以忽略相应位置的元素
var ( isLogin , _ ) = test
print( isLogin )

这样子的话就可以忽略后面的字符串元素。

5. 字典

let dic1:[String:Int] = [:]
let dic2 = [String:Int]()
let dic3 :NSDictionary = NSDictionary()
let dic4:NSMutableDictionary = [:]

获取数据类型的最大和最小值

let minValue = UInt8.min
let maxValue = UInt8.max

6. 类型别名

typealias UI16 = UInt16

7. 赋值可以这样

可以用不同进制的表示方式赋值,同时可以使用如下分割符赋值更好看:
let count = 10_0000_0000

两个不同类型运算的时候,必须显式指定而不能隐式自动转换。
强制类型转换格式:UInt8(y)


上一篇:常量和变量 | 下一篇:可选型


目录

  1. 不一样的开始
  2. 常量和变量
  3. 基本数据类型
  4. 可选型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容