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//aba[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)//3print(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 inn > 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)")}
}