swift新版本相对于swift1.0版本改动大全
Posted zlj_jeck
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift新版本相对于swift1.0版本改动大全相关的知识,希望对你有一定的参考价值。
前言:
Swift发展迅速,为了紧跟潮流,小编也学习了swift,但小编学习了1.0版本,现在发现新版本和旧版本有很多的改进和区别,相信苹果官方也是在持续改进swift吧,现在小编就对遇到的改动做一个总结,以便能给遇到相同或者相似问题的小伙伴们提供一些帮助.废话不多讲了,进入正题.
这样更直观一些
//swift新版本相对于swift1.0版本的一些改动
//1.println废弃改为print
//2.遍历数组
for (index, value)in enumerate(shoppingList)
//改为
for (index, value)in shoppingList.enumerate()
//3.数组添加元素的方法
//shoppingList += "柚子"已经废弃,数组不能"+="字符串了
//可用
shoppingList += ["柚子"]
//4.空数组的声明
//let emptyArray1: Array = []//废弃
//var emptyArray2 = Int[]()//废弃
//可以用
let emptyArray1:Array = [Int]()//用其声明空数组
//5.非空数组
//var threeDoubles = Double[](count: 3, repeatedValue: 0.0) //[0.0, 0.0, 0.0]//废弃
//可以用下面方法定义
var threeDoubles = [Double](count:3, repeatedValue:0.0) //[0.0, 0.0, 0.0]
//6.可选类型
let possibleNumber ="123"
//let convertedNumber: Int? = possibleNumber.toInt() //toInt()函数已废弃
//可以用下面的方法代替
let convertenNumber:Int? =Int(possibleNumber)
//7.字符和字符,字符串和字符已经不能相加了
let dog: Character ="dog"
let cow:Character ="cow"
//let dogCow = dog + cow //已废弃
//可以先把字符转换成字符串再相加(另外注意:要么加号前后都用空格隔开,要么都不要隔开,如果只隔开一边,swift中会报错)
let dogCow =String(dog) + String(cow)
//8.半封闭区域运算符(包头不包尾), (a..b)定义了范围从a到b,包含a的值,但是不包含b的值,已经废弃可以
let names = ["Anna","Alex", "Brian","Jack"]
let count = names.count
//for i in 0..count //已废弃
//可以用封闭范围运算符, (a...b)定义了一个范围从a到b,并且包含a和b的值
for iin 0...count
//9.字符串中以下的这些特殊字符已经转译无效
//单字节Unicode字符,\\xnn,其中nn是两个十六进制数
//双字节Unicode字符,\\unnnn,其中nnnn是四个十六进制数
//四字节Unicode字符,\\Unnnnnnnn,其中nnnnnnnn是八个十六进制数
//例如:
//let dollarSign = "\\x24" //$ //单字节转译已无效
//let blackHeart = "\\u2665" //♥ //双字节转译已无效
//let sparkHeart = "\\U0001F496" //(这里是个红心)//四字节转译已无效
//10.countElements计算一个字符串中的字符的数量,此函数已废弃
let countStr = "wu xian hu lian"
//println("countStr count is \\(countElements(countStr))")//报错
//可使用下面方法代替
print("countStr count is \\(countStr.characters.count)")
//11.for - in 遍历字符串
//这种写法已废弃
//for character in "hello"
// print(character)
//
//可以这样写,使用characters
for character in ("hello").characters
print(character)
//12.do-while循环已废弃,用repeat-while来替换
var vb = 1
//do
// print("do while index is \\(vb)")
// vb++
//while vb < 5
//更改为
repeat
print("repeat while index is \\(vb)")
vb++
while vb < 5
//13.函数可以有多个输入参数,写在圆括号中,用逗号分隔
func minusResult(start: Int, end: Int) -> Int
return end - start
//函数的调用
minusResult(1,10) //这样调用的方法已经废弃
//改成这样写(多个参数时,除了第一个参数以外,其他参数必须写参数名)
minusResult(1,end: 10)
//14.简写外部参数名已经废弃
//如果你需要提供外部参数名,但是局部参数名已经定义好了,那么你不需要写两次这些参数名。相反,只写一次参数名,并用井号(#)作为前缀就可以了(1.0版本)。这告诉 Swift 使用这个参数名作为局部和外部参数名。
//func containsCharacter(#string: String, #characterToFind: Character) -> Bool //#已废弃
//可以这样写(除了第一个外部参数名不可省略,其他外部参数名可以省略,并且局部参数名可以作为外部参数名)
func containsCharacter(string1 string: String, characterToFind: Character,chara:Character ) -> Bool
//这样定义参数名,使得函数体更为可读,清晰,同时也可以以一个不含糊的方式被调用
let containsAVee = containsCharacter(string1: "qwertyuiop", characterToFind: "y",chara:"r")
print(containsAVee)
//15.sort函数
//var reversed = sort(names,backwards)//这种写法已经废弃
//可以这样写
var reversed = names.sort(backwards)
//16.猜测还有很多入sort函数的写法
//sort(names,backwards)都已废弃,而被改成
//names.sort(backwards)
//如果遇到类似情况可以试一下
以上是关于swift新版本相对于swift1.0版本改动大全的主要内容,如果未能解决你的问题,请参考以下文章