- let 是 一个声明常量的关键字 用它来声明一个值 默认就不能重复赋值 如需要改默认值 那就得换var 关键字来声明代码如下:
let num1 = 7
代码可以这麼理解:我要订一个 叫num1 的常量 把7给它
// num1 = 8 (这一行代码会报错,原因我们用的是let 它的值定了以后就不能再改)
- var 是变量 意味着我可以随时改他的值
var num2 = 7
num2 = 8
- string 是个字符串
//要订string属性 叫welcome的一个变量
var welcomeMessage: String
// 把hello 赋值给 welcomeMessage
welcomeMessage = "hello"
- 还可以这么写
//要订变量 name和comeFrom 它们属性为: string
var name, comeFrom: String
// name 你来存储李小龙 但你别高兴地太早我随时可以给你起别的名字因为你是变量!
name = "李小龙"
// comeFrom 你来存储香港 但你别高兴地太早我随时可以给你起别的名字因为你是变量!
comeFrom = "香港"
- 我还要把他们打印出来我要print()函数
print(num1)
print(num2)
print(welcomeMessage)
print(name)
print(comeFrom)
- 布尔值 是假和真
let 男人花心呀 = true
let 男人不花心 = false
//布尔值 用条件语句if 的时候有用的哦看下列
if 男人花心呀 {
//如果男人花心是对的那么回个反应
print(" 说的太实在 !")
}else{
print("嗨,真他妈谎 !")
}
提示:if 语句本质是判断 如果没有任何条件还想用它 那你就傻了,看下列
//let age = 88
//if age = 88 {
// 会报错
//}
//但把它可以这么些
let age = 88
if age == 88 {
}
上面两个例子很简单 符号 = 是表示赋值不成立比较逻辑 !反而 == 符号是表示等于 就是比较 类型自然会Bool 类型 会满足条件语句if 的比较和判断*/
- 元组
- 元祖是这么一个东西,多个值组合成单个复合值 牛逼的是不同类型都可以
let myLoveAndStory = ("迪丽热巴", 25)
//上面一行代码包含了两个个元祖 而且返回类型不一样的 string 和 int 类型 这意味着在swift中也可以不同类型的值放在一个元祖里面,类型可以你需要的任何一种
- 下面演示怎么取元祖成员值
let (myGril,year) = myLoveAndStory
//我还要打印me 会打印我定制的的信息
print("我女友是 \(myGril)")
print("我们谈恋爱已经\(year)年了")
- 我现在只需要女友的名字不需要另一个值呀,怎么办? 只用一个下划线 _ 忽略值25
let (justmyGril, _) = myLoveAndStory
print("我女友是 \(justmyGril)")
//我还有第二种方式 可以放元祖的各个元素
print("我的女友是\(myLoveAndStory.0),我们恋爱已经\(myLoveAndStory.1)年了 ")
- 不过我记不住各个元素呀 ,我要给他们起个名 好办,起的名字在前面:元素在后面
let myFamily = (somePeople: 4, LoveWho: "mother")
//现在呢,我元素的标签名来访问元祖的各个值
print("我家里有\(myFamily.somePeople)口人,我爱\(myFamily.LoveWho)")
//接下来就可选类型了 ,它的概念就是有值或者是没有值
let testString = "abc"
let changeString = Int(testString)
- 我要定义一个可选类型的变量但是暂时不想给他一个默认值,变量的值将会自动设置为nil
var money: String?
//可选类型特征就是要么有值要么没有值,两种可能都有,那么我就要if语句来比较和判断
if money != nil{
print("i have some mony")
}else{
print("im sorry ,no mony . ")
}
- 可选类型optional 的if语句绑定
if let num1 = Int("3"), let num2 = Int("7"), num1 < num2 && num2 < 10{
print("\(num1) < \(num2) < 100")
}
- 然后就是可选类型解包这个玩意 , 听起来很陌生,用起来很简单 看下面代码:
let optinalString: String? = "hello, im just a optional string "
let 我要用上面的值 :String = optinalString!
- 上面第一行string后面加了?意味着 它是一个optional 可选类型 但我给他一个默认值了就是一段文字并且我还想要拿它的值,我要用它!感叹号来解包 , 解包这个东西意思就是我知道可选类型有一个值 我要用它!
- 用断言调式 assert (中文意思:维护,坚持;断言;主张;声称)
- 下面的代码可以这麼理解 ,如果年龄满足那么执行,如果不满足就要停止,代码中的18改成28的话就不满足条件程序会被assert 终止 会报错:error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
let age1 = 10
assert(age1 >= 5, "得上学")
assert(age1 >= 0)
if age1 > 13{
print("是中学生")
}else if age1 > 0 {
print("反正有一个人,不知道几岁")
}else{
assertionFailure("一个人的年龄还能小于零吗?")
}