Swift_基础x.x
2016-01-24 18:10
471 查看
Day_2
刚刚写了好久的没保存。。更坑的事Swift2好像改了函数!找了半天
代码可以直接在playground执行
因为看的书上用的是Swift1.1版本,于是在iBook上下载了Swift2.1的版本对照着学习的,所以代码是最新的2.1版,XCode6.0不支持
String
注意!Swift代码已改,原来1.0版 1.1版会报错import Foundation let string = "Hello Boy" let string1 = "nice to meet you!" if string.hasPrefix("H") //判断前缀 { print("前缀是H") } if string.hasSuffix("Boy")//判断后缀 {print("后缀是Boy")} print(string.uppercaseString) //转换为大写 print(string.lowercaseString) //转换为小写 //countElements已改为count print(string.characters.count) //输出 //遍历以改 for c in string.characters { print(c) } //String可以使用 + 号和 += 连接字符串 string = string + " " + string1 string += string1
The Swift Programming Language
“Swift strings cannot be indexed by integer values.”
摘录来自: Apple Inc. “The Swift Programming Language (Swift 2.1)”。 iBooks.
https://itun.es/cn/jEUH0.l
Swift不允许使用string[index] index为整数的方式来访问,使用案例
let greeting = "Guten Tag!" greeting[greeting.startIndex] // G //end是指字符串中最后一个字符的后一位,并不是指最后一个字符 //相当于c语言的结束字符 //predecessor前一个 //successor 后一个 greeting[greeting.endIndex.predecessor()] // ! greeting[greeting.startIndex.successor()] // u let index = greeting.startIndex.advancedBy(7) greeting[index] // a
数组
基础//声明数组的方法 var a:[Int] = [1, 2, 3] var b = [1, 2, 3] var c:[Int] = [1, 2, 4] var d = [Double](count: 5, repeatedValue: 0.1) var a1 : AnyObject = a var c1 : AnyObject = c var b1 : AnyObject = b print(b.count) // 长度 3 print(a.isEmpty) // 是否为空 false //判断恒等 //在判断恒等与不恒等的情况下必须转化为AnyObject才能进行比较 if a1 === c1 {print("a与c恒等")} else {print("a与c不恒等")} //判断共有元素 if (a1 !== c1) {print("有共用元素")} else {print("无共用元素")} //数组的copy函数同样可以用来初始化,同样a1也必须是AnyObject类型 var a2 = a1.copy()
添加删除
var array = ["A", "C", "D"] //数组通过此方式可以在末尾添加元素 array += ["E"] //使用数组的append方法可以在末位添加元素 array.append("F") //在指定的位置index添加指定元素 array.insert("B", atIndex: 1) //批量修改,使用到[x...y]的使用 //这里的使用非常灵活,也可以只写两个,也可以写空, //后面的元素自动补齐 array[1...3] = ["J", "K", "L"] //移除最后一个元素 array.removeLast() //移除第一个元素 array.removeFirst() //移除指定位置的元素 array.removeAtIndex(2) //移除所有元素 keepCapacity为可选形参 默认值为false //默认值为false指元素从数组中删除同时也从内存中删除 //当设置为true时指元素从数组中删除但是不从内存中删除 array.removeAll(keepCapacity: false)
遍历数组
var array1 = [1, 2, 3, 4, 5] for item in array1 { print(item) } for (index, value) in EnumerateSequence(array1) { print("索引 \(index) 值 : \(value)") }
集合Set
这篇内容书上没有,全部是从英文版的书里面来的。(书简直太坑了,这么重要的数据结构都没有!)“A set stores distinct values of the same type in a collection with no
defined ordering. You can use a set instead of an array when the order
of items is not important, or when you need to ensure that an item
only appears once.”
摘录来自: Apple Inc. “The Swift Programming Language (Swift 2.1)”。 iBooks.
https://itun.es/cn/jEUH0.l
上面的英文理解起来不难,像C++ 里面的 STL 一样,集合Set里面的元素只出现一次
初始化
var letters = Set<Character>() print("letters is of type Set<Character> with \(letters.count) items.") var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"] var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]
操作
var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"] print("I have \(favoriteGenres.count) favorite music genres.") //元素总和 if favoriteGenres.isEmpty //判空 { print("As far as music goes, I'm not picky.") } else { print("I have particular music preferences.") } favoriteGenres.insert("Jazz") //插入 if let removedGenre = favoriteGenres.remove("Rock") //移除 { print("\(removedGenre)? I'm over it.") } else { print("I never much cared for that.") } if favoriteGenres.contains("Funk") //是否包含 { print("I get up on the good foot.") } else { print("It's too funky in here.") } for genre in favoriteGenres.sort(>) //遍历 { print("\(genre)") }
集合的交并补
let oddDigits: Set = [1, 3, 5, 7, 9] let evenDigits: Set = [0, 2, 4, 6, 8] let singleDigitPrimeNumbers: Set = [2, 3, 5, 7] oddDigits.union(evenDigits).sort() // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] -->a 和 b 的全部 oddDigits.intersect(evenDigits).sort() // [] -->a 和 b 的相同部分 oddDigits.subtract(singleDigitPrimeNumbers).sort() // [1, 9] --> a 中无 b 的部分 oddDigits.exclusiveOr(singleDigitPrimeNumbers).sort() // [1, 2, 9] --> a 和 b 的全部除掉 a 和 b 的相同部分
集合的相等 包含等判断
let houseAnimals: Set = ["狗", "猫"] let farmAnimals: Set = ["牛", "鸡", "羊", "狗", "猫"] let cityAnimals: Set = ["鸟", "鼠"] houseAnimals.isSubsetOf(farmAnimals) //子集 // true farmAnimals.isSupersetOf(houseAnimals) //父集 // true farmAnimals.isDisjointWith(cityAnimals) //无相同元素 // true
字典
字典存储的元素包含一个键合一个值,其中值和键相对应, 在Swift中,对于一个特定的字典,它所能存储的键和值都是确定的初始化
var namesOfIntegers = [Int: String]() var dic = [1 : "a", 2 : "b", 3 : "c"]
操作
var dic = [1 : "a", 2 : "b", 3 : "c"] print(dic.count) // 数量 print(dic[2]) //Optional("b") //可以直接用key添加 dic[4] = "d" print(dic) //修改键的值 //可以使用key修改 dic[4] = "hha" //用函数updateValue() 返回被修改之前的值 b //如果对应的key不存在,就创建一个对应的组合 dic.updateValue("a haha", forKey: 2) //三种删除方法 dic[2] = nil dic.removeValueForKey(1) dic.removeAll() //含可选参数 keepCapacity 用法与数组相同
遍历
//遍历 四种方式 for value in dic.values { print(value) } for key in dic.keys { print(key) } for (key, value) in dic { print(key, value) } for dict in dic { print(dict) }
相关文章推荐
- Swift闭包和代理的简单使用
- 从零学习Swift<5>
- swift 溢出处理
- Swift UIButton
- Swift 航歌-做最好的开发者知识平台
- Map all the things in Swift 映射所有东西
- Swift UILabel
- [Swift开发实战]- 类型的扩展
- Swift - 使用网格(UICollectionView)进行流布局
- 【Swift初见】Swift数组(二)
- 从零学习Swift<4>
- Swift - 使用导航条和导航条控制器来进行页面切换
- 8.布尔类型
- 7.类型别名
- 6.数值型类型转换
- 5.数值型字面量
- 4.类型安全和类型推断
- swift手记-4
- Swift学习笔记9--错误控制
- Swift 文档注释规范