swift - 没有参数的通配符模式(或 _ 参数)
问题描述
我对 changeFloor(_:) 参数感到困惑,其中指定了通配符 _ 并没有分配任何内容。这不违背通配符的全部目的,即不必重新输入参数名称吗?此外,为什么当通配符变量应该是 UISegmentedControl() 类型的变量“控件”被传递以供操作访问它时,它却没有赋值。
@objc func changeFloor(_ controls: UISegmentedControl){
switch controls.selectedSegmentIndex {
case 0:
print("hi")
case 1:
print("bye!")
default:
print("no item found!")
}
}
controls.addTarget(self, action: #selector(changeFloor(_:)), for: .valueChanged)
解决方案
那不是通配符。这是一个省略的参数 label。
省略参数标签
如果您不想要参数的参数标签,请为该参数编写一个下划线 (_) 而不是显式的参数标签。
推荐阅读
- assembly - Linux 下 x86 程序集中系统调用的错误处理
- html - 将 div 元素定位在绝对定位的图像上
- nativescript - 如何在 RadListView 中创建项目阴影?
- apache - Spring Boot,带有 MTOM 的 Apache CXF 3.2.5 发送空附件
- python - How to suppress the error message: "Error in `./hubbard.exc': corrupted size vs. prev_size"?
- excel - 如何在满足 VBA 函数中另一个范围的条件的范围内平均可见/过滤的单元格?
- java - JUnit 测试单独成功,但一起执行时会失败并导致错误?
- laravel - Vue 正在改变集合的顺序
- python - 返回在 if else 语句中分配的递归变量,python中的逻辑问题
- python - Python 文件中的有效 JSON 加载