首页 > 解决方案 > 没有参数的通配符模式(或 _ 参数)

问题描述

我对 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)

标签: swift

解决方案


那不是通配符。这是一个省略的参数 label

省略参数标签

如果您不想要参数的参数标签,请为该参数编写一个下划线 (_) 而不是显式的参数标签。


推荐阅读