Swift下划线作用

在Swift在。有许多神奇的下划线,在这里,我们将看到神奇的汇总,我希望能够帮助其他很多学习Swift朋友。(PS:本文为转载内容)

原文地址: 神奇的下划线

@Author: twlkyao转载或者引用请保留此行。

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

let paddedDouble = 123.000_001
let oneMillion = 1_000_000

2.忽略元组的元素值
当我们使用元组时,假设有的元素不须要使用。这时能够使用下划线将对应的元素进行忽略,比如:

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

代码中。仅仅关心http404Error中第二个元素的值。所以第一个元素能够使用下划线进行忽略。
3.忽略区间值

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

有时候我们并不关心区间内每一项的值,能够使用下划线来忽略这些值。
4.忽略外部參数名

  • 忽略方法的默认外部參数名
    在用法(类方法或者实例方法)时,方法的第二个參数名及兴许的參数名,默认既是内部參数名,又是外部參数名。假设不想提供外部參数名,能够在參数名前加入下划线来忽略外部參数名。

class Counter {
var count: Int = 0
func incrementBy(amount: Int, numberOfTimes: Int) {
count += amount * numberOfTimes
}
}

在上面的代码中,方法incrementBy()中的numberOfTimes具有默认的外部參数名:numberOfTimes,假设不想使用外部參数名能够使用下划线进行忽略,代码能够写为(只是为了提高代码的可读性,一般不进行忽略):

class Counter {
var count: Int = 0
func incrementBy(amount: Int, _ numberOfTimes: Int) {
count += amount * numberOfTimes
}
}

  • 忽略具有默认值的參数的外部參数名
    当函数(或者方法)的參数具有默认值时,Swift自己主动为该參数提供与參数名一致的默认外部參数名,因此在进行函数调用的时候,要提供默认參数名。能够使用下划线进行忽略默认外部參数名(可是不推荐忽略外部參数名。这主要是为了调用的时候能够方便地知道每一个參数的含义)。

func join(s1: String, s2: String, joiner: String = " ") -> String {
return s1 + joiner + s2
}
// call the function.
join("hello", "world", joiner: "-")

假设不想使用默认外部參数名,能够进行例如以下改动:

func join(s1: String, s2: String, _ joiner: String = " ") -> String {
return s1 + joiner + s2
}
// call the function.
join("hello", "world", "-")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //: Playground - noun: a place where people can play impo...
    艾希_可可阅读 2,498评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • 86.复合 Cases 共享相同代码块的多个switch 分支 分支可以合并, 写在分支后用逗号分开。如果任何模式...
    无沣阅读 5,320评论 1 5
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,486评论 18 399
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,356评论 0 33

友情链接更多精彩内容