一、常量和变量
let maxNum = 1000 //常量
var sum = 999 //变量
sum = 10000 //可改变变量的值
二、声明类型
var website:NSString //声明类型
website = "my name is ..." //赋值
print(website)
三、大数位数字区分
let hahaha = 1_000_000 //可以用_区分大数位数字,不影响赋值
四、类型强转
let a = 3.0
let b = 1
let pi = a + Double(b) //不能两个类型不同的数值相加,必须强转类型一致
五、类型强转
let 哈哈 = "你并不认识我" //可以用汉字当变量名
哈哈 + ".我是哈哈" //字符串拼接
六、bool
let father = true //bool值必须是小写的true,false
let mother = false
//if语句写法,条件不加括号,而且不为0的数值不表示真,条件必须是表达式或者布尔值
if 3 + 5 == 8 {
print("mother")
}
else if father
{
print("father")
}
七、元组
let connetResult = (404, "NOT FOUND") //元组
let (connrctState, ResultStr) = connetResult //给元组中值起名,方便提取
connetResult.0 //提取元组中值
ResultStr //提取元组中值
let registResult = (isRegisterSucces : true , nickName : "花花" , sex :"女")
//直接给元组值起名
registResult.isRegisterSucces //提取元组中值
registResult.nickName //提取元组中值
registResult.2 //提取元组中值
let loginReult = (true, "女神")
let (isLogin, _ ) = loginReult //可以用_忽略不想提取的值
if isLogin {
print("登录成功")
}
let loginResult : (Bool , String) = (true , "女神") //标记类型
八、Optionals可选值
可选值,或者是一个值,或者没有值,没有值时为nil
var p:Int
p = 1
p //没有经过上一步初始化的值,是不可以直接使用的
var imOptional:Int? //定义可选值
imOptional //可直接使用
imOptional = 12 //也可初始化一个值
//let userInput = "abc"
let userInput = "18" //userInput为用户输入的年龄
var age = Int(userInput) //age是提取输入值能否转成int行,返回可选值类型
if age != nil {
print("your age is \(age)") //\(age) 可输出age值 但会输出Optional类型提示
print("your age is \(age!)") //\(age) 可输出age值 用感叹号表示明确有值,进行解包
//print("your age is" + String(age)) //\(age) 会报错,不能强制转换可选项
print("your age is" + String(age!)) //\(age) 在明确有值的情况下,用!解包就可以强制转换
} else {
print("Invalidate userInput")
}
//Optional Binding
if let userAge = Int(userInput)
{
print("your age is \(userAge)") //该方式直接输出无Optional类型提示
}
let StrA:String? = "test"
StrA //调用会有Optional类型提示
StrA! //解包后调用,没有Optional类型提示
let StrB:String! = "test" //确认有值可直接!解包
StrB