1 Int
整型、整数
整型(Int
)指的是没有小数点的数字,可以有符号 (正、负、零)或是无符号 (正、零)。
Swift 提供 8 、 16 、 32 和 64 位元的有符号的整数类型,依序为Int8
、Int16
、Int32
和Int64
,以及无符号的整数类型,依序是UInt8
、UInt16
、UInt32
和UInt64
。一般情況這個不用去考慮太多。
一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整型类型Int
,长度与当前平台的原生字长相同:
在 32 位元平台与Int32
相同,
在 64 位元平台则与Int64
相同。
通常我们使用整型类型时,大部分情况都建议只使用Int
即可。不需要小数点的,就用Int
。
2 Float、Double
浮点数
浮点数(Float、Double
)指的是有包含小数点的数字,Float
跟Double
的差别在于精确度,Float
有 6 位数,而Double
可以达到 15 位数,如下:
let piValue = 3.1415926
var height = 178.25
// 声明浮点数时 如果没有类别标注 通常会将他判断为 Double
let oneHeight = 165.25 // 类别为 Double
let anotherHeight: Float = 175.5 // 除非类别标注填写为 Float
需要用到小数点的,用 Double 就好了。
- 整数和浮点数转换
整数和浮点数的转换必须指定类别。例子如下:
// 类别为整数 Int
let number1 = 3
// 类别为浮点数 Double
let number2 = 0.1415926
// 相加前 需要将 Int 转换成 Double 否则会报错误
let pi = Double(number1) + number2
// 这个值的类别也就是 Double
// 打印:3.1415926
print(pi)
相反来说也行,可以将浮点数转换成整数,而小数点后的数字就会被截断。如下:
let integerPi = Int(pi)
// 类别为 Int 小数点后的数字被截断
// 所以只会打印:3
print(integerPi)
3 Bool
布尔值、布林值
Swift 有一个基本的布尔(Boolean)类型,叫做 Bool。布尔值指逻辑上的值,因为它们只能是真或者假。Swift 有两个布尔常量,true 和 false。
就是“有”、“没有”;“对”、“错”;“肯定”、“否定”的概念。
let storeOpen = true
let forFree = false
4 Character
字符
字符、字元(character)指的是依照编码格式的一个位元组(简单来说就是一个英文字母、数字或符号)。
字符指的是单个字母,例如:"C"
5 String
字符串
字符串(string
)是有序的字元集合(简单说就是一段文字),皆是以一对双引号"
前后包起来。
- 字符串是字符的序列集合,例如:
"Hello, World!"
let firstString = "Nice to meet you."
let secondString = "Nice to meet you,too."
- 声明字符串时 不论字数多少 都会判断为 String,除非类别标注填写为 Character
let str1 = "It is a string ." // 类别为 String
let str2 = "b" // 类别仍然是 String
let str3: Character = "c" // 除非类别标注填写为 Character
- 如果要在字符串中加入其他变数或常数,要使用
\()
这个方式,如下
let score = 80
let string = "My score is \(score) ."
//打印:My score is 80 .
print(string)
这个()的方法会经常地用到,练习一下,你会很喜欢的。
- 字符串链接
字符串可以通过 + 号来连接,实例如下:
let constA = "a"
let constB = "b"
var stringA = constA + constB
print( stringA )
以上程序执行输出结果为:
ab
- 字符串长度
字符串长度使用String.count
属性来计算,实例如下:
Swift 3 版本使用的是 String.characters.count
var varA = "abc"
print( "\(varA), 长度为 \(varA.count)" )
以上程序执行输出结果为:
abc ,长度为 3
- 字符串比较
你可以使用 == 来比较两个字符串是否相等:
var varA = "Hello, Swift!"
var varB = "Hello, World!"
if varA == varB {
print( "\(varA) 与 \(varB) 是相等的" )
} else {
print( "\(varA) 与 \(varB) 是不相等的" )
}
以上程序执行输出结果为:
Hello, Swift! 与 Hello, World! 是不相等的
- 多行字符串
类似于OC中的\n
换行
let name = """
hello~
my name is lk.
"""
// 输出结果
// hello~
// my name is lk
print(name)
- 字符串转数组
方法一、
var str = "你 好 啊"
var arr = Array(str)
print(arr)
以上程序执行输出结果为:
["你", " ", "好", " ", "啊"]
方法二、
var str = "你 好 啊"
var arr = str.split(separator: " ")
print(arr)
以上程序执行输出结果为:
["你", "好", "啊"]
- 字符串的遍历 Swift 5:
let str = "abcde"
print("---- 正序遍历 ----")
var i = 0
for ch in str {
print("\(i): \(ch)")
i += 1
}
- Unicode 字符串
Unicode 是一个国际标准,用于文本的编码,Swift 的 String 类型是基于 Unicode建立的。你可以循环迭代出字符串中 UTF-8 与 UTF-16 的编码,实例如下:
var unicodeString = "你好啊"
print("UTF-8 编码: ")
for code in unicodeString.utf8 {
print("\(code) ")
}
print("UTF-16 编码: ")
for code in unicodeString.utf16 {
print("\(code) ")
}
以上程序执行输出结果为:
UTF-8 编码:
228
189
160
229
165
189
229
149
138
UTF-16 编码:
20320
22909
21834
- 字符串函数及运算符
Swift 支持以下几种字符串函数及运算符:
序号 | 函数/运算符 & 描述 |
---|---|
1 isEmpty
|
判断字符串是否为空,返回布尔值 |
2 hasPrefix(prefix: String)
|
检查字符串是否拥有特定前缀 |
3 hasSuffix(suffix: String)
|
检查字符串是否拥有特定后缀。 |
4 Int(String)
|
转换字符串数字为整型。 |
5 String.count
|
Swift 3 版本使用的是 String.characters.count 计算字符串的长度 |
6 utf8
|
您可以通过遍历 String 的 utf8 属性来访问它的 UTF-8 编码 |
7 utf16
|
您可以通过遍历 String 的 utf8 属性来访问它的 utf16 编码 |
8 unicodeScalars
|
您可以通过遍历String 值的unicodeScalars 属性来访问它的 Unicode 标量编码. |
9 +
|
连接两个字符串,并返回一个新的字符串 |
10 +=
|
连接操作符两边的字符串并将新字符串赋值给左边的操作符变量 |
11 ==
|
判断两个字符串是否相等 |
12 <
|
比较两个字符串,对两个字符串的字母逐一比较。 |
13 !=
|
比较两个字符串是否不相等。 |
字符串型字面量
数值范围
下表显示了不同变量类型内存的存储空间,及变量类型的最大最小值:
类型 | 大小(字节) | 区间值 |
---|---|---|
Int8 | 1 字节 | -128 到 127 |
UInt8 | 1 字节 | 0 到 255 |
Int32 | 4 字节 | -2147483648 到 2147483647 |
UInt32 | 4 字节 | 0 到 4294967295 |
Int64 | 8 字节 | -9223372036854775808 到 9223372036854775807 |
UInt64 | 8 字节 | 0 到 18446744073709551615 |
Float | 4 字节 | 1.2E-38 到 3.4E+38 (~6 digits) |
Double | 8 字节 | 2.3E-308 到 1.7E+308 (~15 digits) |
原文链接:https://blog.csdn.net/weixin_42385177/article/details/121385190
原文链接:https://www.jianshu.com/p/cfc856d60692
原文链接:https://blog.csdn.net/ChasingDreamsCoder/article/details/53976255