当前位置: 首页 > 面试题库 >

Swift何时需要参数标签?

柳景胜
2023-03-14
问题内容

在回答这个问题时,谈到要调用时需要参数标签init。这在Swift中很正常。

class Foo {
    init(one: Int, two: String) { }
}

let foo = Foo(42, "Hello world") // Missing argument labels 'one:two:' in call

但是,陌生力量在起作用:

extension Foo {
    func run(one: String, two: [Int]) { }
}

foo.run(one: "Goodbye", two: []) // Extraneous argument label 'one:' in call

要在此处使用参数标签,必须明确声明。

在文档中,我还没有看到非常详尽的解释。哪些种类的类/实例/全局函数需要自变量标签?是否始终使用参数标签导出和导入Obj-C方法?


问题答案:

从Swift 3.0开始,这种情况再次发生了变化:除非您使用外部名称明确选择退出,否则所有方法,函数和初始化器都需要为 所有
参数使用参数标签_。这意味着addChildViewController(_:)现在这样的方法是这样写的:

func addChildViewController(_ childController: UIViewController)

这是作为Swift Evolution流程的一部分提出和批准的,并已在SR-961中实施。



 类似资料:
  • 我正在学习Spring MVC,并试图验证表单。当用户搜索空白字符串时,将显示错误。当我执行我的代码时,我得到以下错误 Errors/BindingResult参数应该紧随控制器方法签名中的模型属性参数之后:public java.lang.string com.mycompany.controller.catalog.searchController.search(javax.servlet.h

  • 问题内容: 我是学习Swift的新手,并且正在尝试运行一个非常简单的应用程序。我要做的就是 让UIView.drawRect在我按下按钮时更新 。无论我尝试什么,它都会在应用程序首次加载时更新/绘制,然后再更新/绘制。我已经为此奋斗了几天,但我找不到任何帮助。 我创建: 单视图应用程序 一个按钮,作为操作链接到视图控制器 一个新的类Test_View继承了UIView ViewController

  • 问题内容: 我在课堂上有这个功能: 我尝试使用此函数来调用该函数: 问题是编译器希望它看起来像这样: 为什么第一个会导致错误? 问题答案: Swift 2.0更新 :现在,默认情况下,函数的功能与方法相同,并且对于两种方法而言: 第一个参数没有外部名称;和 其他参数的外部名称与内部名称相同。 除此之外,下面的规则仍然适用,只是速记语法已消失。 这是一个更一般的答案:函数在类之外定义为真函数时以及在

  • 问题内容: 我有一个Swift类,我想看起来像这样: 但是,Swift不喜欢我要传递给初始化程序的事实。我在这里打破某些模式吗?应该如何完成这样的初始化? 问题答案: 您已经找到了Implicitly Unwrapped Optional 的主要用例。 你需要访问的,之前被初始化。 否则,应该 永远 是零,所以你不应该有外部的检查。 因此,您应该声明。

  • 设置一个应该在图像上放置广告的应用程序时,我在运行代码时遇到了这个WordPress错误,这是一个令人沮丧的星期试图修复这个问题。 我希望它能工作,但它给了我以下错误:警告:preg_replace_callback():需要参数2,' 如果有人能想出一个解决方案,那将是惊人的,非常感谢!

  • 我刚刚更新了PHP在我的服务器从PHP 5到PHP 7,我得到了这些警告: 警告:preg_replace_callback()[function.preg-replace-callback0]:要求参数2“chr(\1)”是有效的回调 警告:preg\u replace\u callback() 警告:preg_replace_callback()[function.preg-replace-c