/** println 打印 */
println("hello world")
/** let 定义常量 不可变 */
let constNumb = 1
/** var 定义变量 可变 */
var numb: Int = 8
numb = 10
println(numb)
var myName : String = "赵楠"
let myAge : Int = 24
myName = "我的名字是赵楠"
/** 字符串拼接 */
var myInfo = myName + String(myAge)
println(myInfo)
let myHome : String = "我的家乡在山东曲阜,读取\(numb)秒后进行操作"
println(myHome)
/** 创建数组 */
let objectArray = ["1", "2", "3", "4", "5"]
println(objectArray)
/** 可变数组 */
var objectMutArray = ["1", "2", "3", "4", "5"]
objectMutArray.removeLast()
println(objectMutArray)
/** 创建字典 */
let objectDic = [
"key": "value",
"key2": "value2"
]
println(objectDic["key"])
/** 创建可变字典 */
var objectDict = [
"key1": "value1",
"key2": "value2",
"key3": "value3"
]
/** 新添元素 */
objectDict["key4"] = "value4"
/** 删除某个元素 */
objectDict.removeValueForKey("key1")
println(objectDict)
/** 创建空的数组 */
var emptArray = []
println(emptArray.classForCoder)
var emptDic = [:]
println("该字典的class---",emptDic.classForCoder)
let itemsArray = ["a", "b", "c", "d", "e"]
for item in itemsArray {
if item == "a"{
println("当前的参数为a")
}else{
println(item)
}
}
if itemsArray.count <= 5{
println("数组元素个数小于或等于5")
}
/** 类型?可选类型 */
var isOk : String? = "YES"
/** 例如 count为字符串 有可能可以转为数字 但是不确定一定是数字 所以可以用类型+? 来定位可选类型 optional Int = Int? 可选类型 如果不是该类型则会返回的是nil */
let count : String = "10000"
var countNumb : Int? = count.toInt()
println(countNumb)
let charStr : String = "hello everyOne"
var intValue : Int? = charStr.toInt()
println(intValue)
/** 强制解析 countNumb! 要确认其是否一定有值 */
if countNumb != nil {
println("\(count) has an integer value of \(countNumb!)")
} else {
println("\(count) could not has an integer value")
}
/** 可选绑定 使用可选绑定(optional binding)来判断可选是否包含值,如果包含就把值赋给一个临时常量或者变量 */
if let coutNumber = count.toInt() {
println("\(count) has an integer value of \(coutNumber)")
}else{
println("\(count) could not has an integer value")
}
/** nil不能用于非可选的常量和变量 如果你声明一个可选常量或者变量但是没有赋值,它们会自动被设置为nil */
/** Swift 的nil和 Objective-C 中的nil并不一样。在 Objective-C 中,nil是一个指向不存在对象的指针。在 Swift 中,nil不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选都可以被设置为nil,不只是对象类型 */
/** switch 更为强大 不再只限于常数 default 但必须要有default 不再需要break 执行完一个case 就会跳出switch */
let selectName : String = "A"
var selectReslut : String
switch selectName {
case "A":
selectReslut = "The One"
case "B":
selectReslut = "The Two"
default :
selectReslut = "Nothing"
}
println(selectReslut)
/** 可使用 for-in 来迭代字典中的每个元素,提供一对名字来使用每个键值对 */
let numbersDic = [
"key0" : ["01", "02", "03", "04", "05"],
"key1" : ["11", "12", "13", "14", "15"],
"key2" : ["21", "22", "23", "24", "25"]
]
/** [String]() 存放字符串类型的数组 一旦该数组存放了 某一种类型就不能存放其他类型的数据 */
var keys = [String]()
for (key, numbs) in numbersDic {
for numb in numbs {
/** 新加入数据 */
keys.append(numb)
println(numb)
}
}
println(keys)
/** swfit 语言中的数组和字典都是明确类型的 只能存放同一种数据 */
var array = [["key1": "value1"], ["key2": "value2"], ["key3": "value3"]]
println(array)
/** array.isEmpty 判断数组是否为空 YES 空 No 不为空 */
if array.isEmpty {
println("该数组为空")
} else {
println("该数组不为空")
}
/** 数组追加元素 append */
array.append(["key4": "value4"])
array[0] = ["key0": "value0"]
/** 注意不能数组越界 若后跟参数不足 则自动remov */
array[1...3] = [["key1": "value1"], ["key2": "value2"], ["key3": "value3"]]
println(array)
/** extend 追加一个数组 */
array.extend([["key4": "value4"], ["key5": "value5"], ["key6": "value6"]])
println(array)
/** 指定下表插入元素 */
array.insert(["keyMin": "valueMin"], atIndex: 0)
println(array)
/** 删除指定下表的元素 */
array.removeAtIndex(0)
println(array)
/** 删除最后一个元素 */
array.removeLast()
println(array)
/** 删除所有的元素 keepCapacity 是否保留该数组的容量 默认为false */
// array.removeAll()
/** 遍历数组 */
for obj in array{
println(obj)
}
/** 通过enumerate方法来遍历数组 index 下表 value 值 */
for (index, value) in enumerate (array) {
println("item \(index):\(value)")
}
var array2 = [String]()
array2.append("3")
/** 初始化多个相同值的数组 */
var array3 = [Double](count: 5, repeatedValue: 0.75)
println(array3)
/** 根据内容自动确认类型的数组 */
var array4 = Array(count: 6, repeatedValue: 1.5)
println(array4)
/** 两个数组组合成一个数组 */
var array5 = array3 + array4
println(array5)
/** reverse() 翻转数组内元素的顺序 */
array5 = array5.reverse()
println(array5)
/** 字典 ==!可以用常量作为 key value 不再必须为对象 */
var dict = [1: 1]
println("字典内容为\(dict)")
/** 更新字典中的某个值 并且会返回更改前的 value 如果value 不存在 则返回nil */
println("并且会返回原来的value 来确认更改是否生效 \(dict.updateValue(2, forKey: 1))")
dict.updateValue(3, forKey: 2)
dict.removeValueForKey(1)
/** 将某个key对应的value设为nil 也删除该键值对 */
dict[2] = nil
dict.updateValue(1, forKey: 1)
var dict2 = dict
println("新的字典为---\(dict2)")
var dict3 = ["a": "1", "b": "2", "c": "3", "d": "4", "e": "5"]
for obj in dict3{
println("字典的数据为---\(obj)")
}
let keyArray = dict3.keys
let valueArray = dict3.values
println("key为---\(keyArray) dict3.keys---\(dict3.keys) value为---\(valueArray) dict3.values---\(dict3.values)")