//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
//var a = 1
//a += 2
//a
/**
* 三目运算符
*/
let has = true
let row = has ? 5:8
/**
* 空合运算符
空合运算符(a ?? b)将对可选类型a进行空判断 如果a包含一个值就进行解封 否则就返回
一个默认值b 这个运算符有两个条件:
表达是a必须是Optional(可选)类型
默认值 b 必须要和 a 的存储值得类型保持一致
*/
//三目 解释
var a:Int? = nil
var b = 2
a != nil ? a! : b
//空合运算
a = a ?? b
//注意:如果a为非空值(non - nil)那么值b将不会被估值 这也就是所谓的短路求值
let defaultColorName = "red"
var user :String?
var colorNameToUse = user ?? defaultColorName
user = "green"
colorNameToUse = user ?? defaultColorName
/**
* 区间运算符
*/
/**
* 闭区间运算符
(a...b)定义一个包含从a到b(包括a和b)的所有值的区间,b必须大于a。
*/
for index in 1...5{
print(index)
}
/**
* 半开区间运算符
半开区间 (a..<b)定义一个从a到b但不包括b的区间
*/
let names = ["anna","alex","brian","jack"]
let count = names.count
for i in 0..<count{
print(i)
}
/**
* 字符串和字符
字符串字面量可以包含以下特殊字符:
转义字符\0(空字符)、\\(反斜线)、\t(水平制表符)、\n(换行符)、\r(回车符)、\"(双引号)、\'(单引号)。
Unicode 标量,写成\u{n}(u为小写),其中n为任意的一到八位十六进制数。
*/
/**
* 初始化空字符串
为了构造一个很长的字符串,可以创建一个空字符串作为初始值。 可以将空的字符串字面量赋值给变量,也可以初始化一个新的String实例:
*/
var emptyString = ""
var anotherEmptyString = String()//初始化String 实例
//可以通过检查其Boolean类型的isEmpty属性来判断字符串是否为空
if emptyString.isEmpty{
print("什么都没有!");
}
/**
* 字符串可变性
注意:
在 Objective-C 和 Cocoa 中,您通过选择两个不同的类(NSString和NSMutableString)来指定该字符串是否可以被修改,Swift 中的字符串是否可以修改仅通过定义的是变量还是常量来决定,实现了多种类型可变性操作的统一。
*/
var variableString = "Horse"
variableString += "and carriage"
let constantString = "Highlander"
//constantString += "and another H÷ighlander"
//编译错误 常量不可修改
/**
* 字符串值得类型
Swift 默认字符串拷贝的方式保证了在函数/方法中传递的是字符串的值。 很明显无论该值来自于哪里,都是您独自拥有的。 您可以放心您传递的字符串本身不会被更改。
*/
/**
* 使用字符
Swift 的String类型表示特定序列的Character(字符) 类型值的集合。 每一个字符值代表一个 Unicode 字符。 您可通过 for-in 循环来遍历字符串中的 characters 属性来获取每一个字符的值:
*/
for character in "Dog!