服务器之家

服务器之家 > 正文

Swift 基本数据类型详解总结

时间:2021-12-26 17:41     来源/作者:Lucky_William

Swift 基本数据类型

有以下几种基本数据类型:

  • 整型
  • 浮点型
  • 布尔型
  • 元组
  • 可选值 Optional

1. 整型

?
1
2
var intType: Int = 11
print(intType) // 11

2. 浮点型

?
1
2
3
4
5
var floatType: Float = 3.14e3 // 10进制中,e表示10的n次方,3.14 * (10^3) = 3140.0
print(floatType) // 3140.0
    
var floatType2: Float = 0x2p3 // 16进制中,p表示2的n次方,2 * (2^3) = 16.0
print(floatType2) // 16.0

3. 布尔型

?
1
2
var boolType = true // or false
print(boolType) // true

4. 元组

允许不相关的类型自由组合为新的集合类型

?
1
2
3
4
5
6
7
8
9
10
11
12
// 定义元组,指定参数名称
var person: (name: String, age: Int) = ("William", 18)
print("name:", person.name, ", age:", person.age) // name: William , age: 18
 
// 元组不指定参数名称,只指定类型
var city: (String, Int) = ("Shanghai", 200000)
// 使用下标访问
print(city.0, city.1) // Shanghai 200000
 
// 分解元组
var (name, code) = city
print(name, code) // Shanghai 200000

5. 可选值 Optional

对普通类型进行 Optional 包装,实现对空值情况的监控。类似于 Kotlin 中可空类型的处理,即在类型或实例后面加不加问号。

  • 如果是在实例后加问号,相当于是在调用实例时,对实例的值的空校验
  • 如果是在类型后加问号,相当于是指定当前变量值可为空 nil
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 单个 Optional 绑定,if-let 结构
var obj: String? = "Wuhan"
if let temp = obj {
    // 当 obj 不为 nil 时,将 obj 赋值给 temp
    print("hello", temp) // hello Wuhan
} else {
    // 否则重新为 obj 赋值
    obj = "hello, if-let"
    print(obj)
}
 
// 多个 Optional 绑定
var obj1:Int? = 1
var obj2:Int? = 2
if let temp1 = obj1, let temp2 = obj2, temp1 < temp2 {
    // 当全部不为 nil 且满足子句 temp1 < temp2
    print(temp1, temp2) // 1 2
} else {
    print("obj1 or obj2 may be nil")
}
 
// Optional,可空,需要拆包
var obj4:Int?
obj4 = 3
// 编译异常,没有进行拆包
// print(obj4 + 1)
// 以下会自动拆包
var obj5:Int! // or Int
obj5 = 3
print(obj5 + 2) // 5

类型别名

类型别名,灵活使用可以优化代码的可读性

?
1
2
3
4
// 为 String 类型指定别名 Weight,后续可以像使用 String 一样使用 Weight
typealias Weight = String
var weight:Weight = "50kg"
print(weight) // 50kg

自动推断、可读性优化,2/8/10/16 进制 表示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 自动推断类型
var a = 10, b:Int = 20, c = "hello swift"
print(a, b , c) // 10 20 hello swift
 
// 在数值前可加 0 进行位数填充,可加入下划线,增加可读性
var number1 = 001.234 // 1.234
var number2 = 1_234 // 1234
// 打印多个值使用逗号分隔
print(number1, number2) // 1.234 1234
 
// 二进制
var type_2 = 0b01
// 八进制
var type_8 = 0o02
// 十进制
var type_10 = 3
// 十六进制
var type_16 = 0x04
print(type_2, type_8 , type_10, type_16) // 1 2 3 4

GitHub 源码:BasicType.playground

到此这篇关于Swift 基本数据类型详解总结的文章就介绍到这了,更多相关Swift 基本数据类型内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/java_android_man/article/details/121056347

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部