Swift4.0 学习小结(一)

2017-11-20  本文已影响14人  Pei丶Code

声明常量与变量

用let定义常量
用var定义变量

let  a = 10
var b = 10
b = a + b
// b 为 20

类型标注

冒号 声明所属类型
常量和变量的名字几乎可以使用任何字符,甚至包括Unicode字符;
但是不能包括空白字符、数字符号、箭头、保留的(或者无效的)Unicode码位、连线和制表符。也不能以数字开头

let a : Int = 10
var hi : String = "Hello"
let 🐱 = "猫"

输出常量和变量

print(a) 
print("我今年\(a)岁了")
// 输出 10

类型安全和类型推断

var str = "This is String"
//会自动识别str为String类型

元组

元组把多个值合并为一个单一的复合型的值。元组内的值可以是任何类型,而且可以不必是同一类型。
你可以用数字索引方式来访问单独的元素 或者 通过其名字来获取元素

let httpError = (404,"Not Found")
let http200Status = (statusCode:200,description:"OK")
print("your error code is \(httpError.0)")
print(" This status code is \(http200Status.statusCode)")

可选项

let x : Int? = 10
let y = 10
print(x! + y)
//输出20
let z : Int? = nil
print(z!)
//此时程序会崩溃

赋值运算符

赋值运算符 “=”可以初始化 或者更新 a为b的值

let   a = 10
var  b = 5
a = b
// a的值为 10

赋值元组

let (x, y) = (1,2)
//x等于1,同时y等于2

与Objective-C 和C不同,Swift的赋值符号自身不会返回值(怕与 “ == ”混淆),例如:

if x = y {
     //这里是不合法的,因为x = y 并不会返回任何值。
}

三元条件运算符

三元条件运算符是一种有三部分的特殊运算,它看起来是这样的: question ? answer1 : answer2 。这是一种基于 question 是真还是假来选择两个表达式之一的便捷写法。如果 question 是真,则会判断为 answer1 并且返回它的值;否则,它判断为 answer2 并且返回它的值。

三元条件运算符就是下面代码的简写

if question{
    answer1
} else {
    answer2
}

举例:

let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight is equal to 90

合并空值运算符

a ?? b ,表达式 a 必须是一个可选类型 如果可选项a有值则展开,若无,是nil,则返回默认值b。

合并空值运算符是下面代码的缩写

a != nil ? a! : b

上面代码中,三元条件运算符强制展开( a! )储存在 a 中的值,如果 a 不是 nil 的话,否则就返回 b 的值。合并空值运算符提供了更加优雅的方式来封装这个条件选择和展开操作,让它更加简洁易读。
注意:如果a是非空,则b不会被考虑,这就是所谓的“短路计算”

let userdefaulColor = "red"
var userColor :String ?
var color = userColor  ??  userdefaulColor 
// userColor为nil,则color 为red

区间运算符

闭区间运算符 (a...b)
半开区间运算符 (a..<b)
单侧区间运算符

let names = ["Jack","LPZ","HHH","Alex"]
let count = names.count
for i in 0..<count {
      print (names[i]);
}
//从索引2 到数组结束
for name in names[2...] {
    print(name)
    // HHH
    //Alex
}
//从0到索引 2
for name in names[...2] {
    print(name)
    // Jack
    // LPZ
    // HHH
}
上一篇下一篇

猜你喜欢

热点阅读