您的位置:首页 > 移动开发 > Swift

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)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: