首先,非常抱歉,昨天本来说是今天要给大家写一下1.1版本和1.2版本之间的区别的。但是,在整理后,1.2增加的许多功能网上早已经有人提出过了,所以这里就不占用大家的时间了,想知道的直接百度就可以了。
今天呢,小汤我就把我在编码中遇到的1.1的语法在1.2下冲突的一些小例子列举一下,并且给大家介绍一下swift中下划线与#号的一些小技巧吧。
1.1版本与1.2版本几个常见冲突:
数组的表示
1.1版本下:let emptyArray = String
1.2版本下:let emptyArray = Stringfor循环
1.1版本下:for i in 0..3 {
}
1.2版本下:for i in 0..<3 {
}排序方法名
1.1 sort
1.2 sorted
这几个是我在测试的过程中发现的几个常见的小冲突,肯定还有一些没有列举出来的,但是想来应该不多了,有找到其他冲突的大牛们,希望能够回复告知一下。
因为今天的内容写的实在过于无聊,想了想又决定添上几个小技巧。
“_”与“#”的一些小技巧
在Swift中,下划线和”#”有很多妙用,这里将已经看到的妙用进行总结,希望可以帮助更多学习Swift的朋友。下面先介绍下划线。
格式化数字字面量
通过使用下划线可以提高数字字面量的可读性,例如:let a = 123.000_001 let b = 1_000_000
忽略元组的元素值
当我们使用元组时,如果有的元素不需要使用,这时可以使用下划线将相应的元素进行忽略,例如:let http404Error = (404,"Not Found") let (_,error) = http404Error
忽略区间值
let base = 3 let power = 10 var answer = 1 for _ in 1...power { answer *= base }
有时候我们并不关心区间内每一项的值,可以使用下划线来忽略这些值。
忽略外部参数名
在使用方法(类方法或者实例方法)时,方法的第二个参数名及后续的参数名,默认既是内部参数名,又是外部参数名,如果不想提供外部参数名,可以在参数名前添加下划线来忽略外部参数名。//函数定义 private func addChildViewController(sbName: String,title: String,imageName: String) {} //函数调用效果 addChildViewController(<#sbName: String#>,title: <#String#>,imageName: <#String#>)
在上面的代码中,函数addChildViewController中有两个带外部参数名的项,如果不想使用外部参数名可以使用下划线进行忽略,代码可以写为(不过为了提高代码的可读性,一般不进行忽略):
//函数定义 private func addChildViewController(sbName: String,_ title: String,_ imageName: String) {} //函数调用时的效果 addChildViewController(<#sbName: String#>,<#title: String#>,<#imageName: String#>)

5. 配置外部参数名
在swift函数中,第二个及后续的参数,默认是具有和内部参数一致的外部参数名的,只有第一个参数没有,可以使用”#”符号来强制给第一个参数添加与本地参数名一致的外部参数名。
//函数定义 private func addChildViewController(#sbName: String,imageName: String) {} //函数调用效果 addChildViewController(sbName: <#String#>,imageName: <#String#>)