print区别
print(1,2,3, separator: "-", terminator: "\n")//表示用-来分割//1-2-3 //terminator表示用\n作为终止符
var a = "a",b= "b"
print(a + b) //ab
print("\(a)前面是a变量\(b)后面是b变量")
变量
var name = "Bob"
type(of: x)//获取x的类型
name.description//Bob 返回变量值
name.debugDescription//"Bob" 调制值
name.hashValue//唯一标识变量的ID
name == "Bob"//true 判断是否相等
var c:Float = 3.4 //强制喂float
var c = Float(3.4)
var d = 3.4 //double
字符串
var text = String()//表示空串
var a = "abcdefg"
var b = "b"
var text1 = """
a
b
c
"""
//a
//b
//c
a +=b//ab
a[a.endIndex]//这个是不存在的必须访问前一位
a[a.index(1)]//b
a[a.index(before:1)]//a 前一个
a[a.index(after:1)]//c 后一个
a[a.index(1,offsetBy:2)]//d 后两个
循环
for index in name.indices{
print(name[index])
}
for x in 1...10
{
print(x)
}//12345678910
转换
var z = Int("3")//实际上Int("3")返回的是Int?,即可选型(Optional),因为转换可能成功也可能失败
print(z)//Optional(3)
var z = Int("3") ?? 0//表示如果能转换就转换成3 不能就为0
print(z)//3
print(z!)//3 强制解包 如果转换失败,强制解包会导致运行时错误 但是测试
if let intValue = Int("3") {
print(intValue)
} else {
print("转换失败")
}
var x = Int("x")
print(x)//nil 并不会崩溃
print(x!)//会导致crash
空合运算符
var x:String? = "a"
解16进制
var p = Int("ff", radix:16) ?? 0//表示按16进制解
数组
var a1:Array<int> = [a,b,c]
var a2:[int] = [1,2,3]
var a3 = Array<Int>()
var a4 = Array<Int>([1,2])
var a5 = Array<int>(1...3)
for (index, value) in a1.enumerated(){
print(index,value,sperator: ":")
}
//0:a 1:b 2:c
a1.remove(at:1)//删除b
查找
var a = [1,2,3,4,5]
var b = a.first(where: {
$0 > 2
})//表示从a中找到第一个大于2的
print(b ?? "没有")
var a = [1,2,3,4,5]
var b = a.first(where: {
n in
n > 2
})
print(b ?? "没有")
要么用$0要么就需要自己命名一个 然后加 in
变换
var a = ["a","b","c","d"]
var b = a.map(
{
$0.uppercased()
})//也就是让数组每一个元素执行闭包里面的操作
分割
var a = "a b c d e f g"
var b = a.split(separator: " ")
print(b ?? [])
//自定义分割
var a = "abcdefg"
var b = a.split(whereSeparator: {
$0 == "c" || $0 == "e"
})//["ab", "d", "fg"]
let和var的区别
let a = 3//a是一个常量
var a = 3//a是一个变量
contentsOf
一般后面跟多个数据
var a = “a”
a.append(contentsOf: [“bbb”, “ccc”])
用于读取文件内容或者数据的一种方法
if let filePath = Bundle.main.path(forResource: "example", ofType: "txt") {
do {
let content = try String(contentsOf: URL(fileURLWithPath: filePath), encoding: .utf8)
print(content)
} catch {
print("读取文件失败: \(error)")
}
}
GCD(Grand Central Dispatch)
用于并发处理,提供了一种简化多线程编程的方法
var body: some View{}
了解一下