Swift学习之每日一tip (4)版本对比与一些小技巧

前端之家收集整理的这篇文章主要介绍了Swift学习之每日一tip (4)版本对比与一些小技巧前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先,非常抱歉,昨天本来说是今天要给大家写一下1.1版本和1.2版本之间的区别的。但是,在整理后,1.2增加的许多功能网上早已经有人提出过了,所以这里就不占用大家的时间了,想知道的直接百度就可以了。
今天呢,小汤我就把我在编码中遇到的1.1的语法在1.2下冲突的一些小例子列举一下,并且给大家介绍一下swift中下划线与#号的一些小技巧吧。

1.1版本与1.2版本几个常见冲突:

  1. 数组的表示
    1.1版本下:let emptyArray = String
    1.2版本下:let emptyArray = String

  2. for循环
    1.1版本下:for i in 0..3 {
    }
    1.2版本下:for i in 0..<3 {
    }

  3. 枚举类型的原始值调用方法
    1.1版本:toValue
    1.2版本:rawValue

  4. 排序方法
    1.1 sort
    1.2 sorted

这几个是我在测试的过程中发现的几个常见的小冲突,肯定还有一些没有列举出来的,但是想来应该不多了,有找到其他冲突的大牛们,希望能够回复告知一下。

因为今天的内容写的实在过于无聊,想了想又决定添上几个小技巧。

“_”与“#”的一些小技巧

在Swift中,下划线和”#”有很多妙用,这里将已经看到的妙用进行总结,希望可以帮助更多学习Swift的朋友。下面先介绍下划线。

  1. 格式化数字字面量
    通过使用下划线可以提高数字字面量的可读性,例如:

    let a = 123.000_001   
    let b = 1_000_000
  2. 忽略元组的元素值
    当我们使用元组时,如果有的元素不需要使用,这时可以使用下划线将相应的元素进行忽略,例如:

    let http404Error = (404,"Not Found")   
    let (_,error) = http404Error

    代码中,只关心http404Error中第二个元素的值,所以第一个元素可以使用下划线进行忽略。

  3. 忽略区间值

    let base = 3   
    let power = 10   
    var answer = 1   
    for _ in 1...power {   
        answer *= base   
    }

    有时候我们并不关心区间内每一项的值,可以使用下划线来忽略这些值。

  4. 忽略外部参数名
    在使用方法(类方法或者实例方法)时,方法的第二个参数名及后续的参数名,默认既是内部参数名,又是外部参数名,如果不想提供外部参数名,可以在参数名前添加下划线来忽略外部参数名。

    //函数定义      
    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#>)

猜你在找的Swift相关文章