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

Swift参数中的默认关键字

姬阳曜
2023-03-14
问题内容

当读取a的初始化程序时,NSLocalizedString我看到一些参数默认为value default。什么是default关键词代表什么?

func NSLocalizedString(key: String, tableName: String? = default, bundle: NSBundle = default, value: String = default, #comment: String) -> String

问题答案:

这不是有效的Swift代码,它是即时生成的。

default这里意味着有一些默认值,但发电机不能想像它适合你才能看到它。从技术上来说,默认值是一个内联函数,因此不能轻易将其转换为简单的声明。

您可以看到类似的声明 assert

func assert(condition: @auto_closure () -> Bool,
            _ message: StaticString = default,
                 file: StaticString = default,
                 line: UWord = default)

其中file默认为#file__FILE__在Swift 1.x中)和line默认为#line__LINE__在Swift
1.x中)。

在的情况下NSLocalizedString,默认值为"Localizable",引用默认的本地化文件Localizable.strings



 类似资料:
  • 当我将firstThing(第一件事)设置为default(默认值)时,如果没有默认值nil(默认值),这将起作用,我会得到一个错误,即调用函数时缺少参数。 通过键入Int 我认为它使它成为可选的,默认值为零,对吗?如果是这样,为什么没有=nil它就不能工作?

  • 问题内容: 我以为我可以在Python 2的函数调用中在变长位置参数之后使用命名参数,但是在导入python类时得到了提示。例如,我正在使用以下“ get”方法编写: 错误看起来像: 我希望能够以几种方式调用该方法: 等等 问题答案: 它确实有效,但仅在Python 3中有效。请参阅PEP 3102。浏览“新功能”文档后,似乎没有2.x向后移植,因此您很不走运。您必须接受任何关键字参数()并手动对

  • 问题内容: 是否可以为可选的通用参数提供默认值? 我正在尝试做这样的事情: 但我说错了 这只是我试图做的不可能的事吗? 问题答案: 用您完成的方式是不可能的。仅考虑上述代码,什么是类型?就像它说的那样,编译器无法弄清楚(我也不能,因为数据不存在,我也不能。) 特定问题的解决方案是重载而不是使用默认值: 但这引发了您在这里做什么的问题。您会认为应该如此。否则,您在做什么?如果不诉诸(您应该强烈避免)

  • 问题内容: 我正在尝试将冗长的空心“数据”类转换为命名元组。我的班级目前看起来像这样: 转换为它后看起来像: 但是这里有一个问题。我的原始类允许我只传入一个值,并通过对named / keyword参数使用默认值来处理默认值。就像是: 但这在重构的元组中不起作用,因为它希望我传递所有字段。我当然可以替换to的出现,但这并不是我喜欢的。 那么,是否存在一个可以使我的重写成功而又不增加很多代码复杂性(

  • 我正在尝试将一个较长的空心“数据”类转换为命名元组。我的类目前看起来像这样: 转换为它看起来像这样: 但是这里有一个问题。我最初的类允许我只传入一个值,并通过为命名/关键字参数使用默认值来处理默认值。类似于: 但这在我重构的命名元组中不起作用,因为它要求我传递所有字段。我当然可以将出现的替换为,但这不符合我的喜好。 那么,是否有一个很好的技巧可以让我的重写成功而不会增加很多代码复杂性(元编程),或

  • 问题内容: 当我运行它时,它拒绝“ def a(…”,并用红色突出显示“(”。我不知道为什么。 问题答案: 让我在这里澄清两点: 首先,非默认参数不应跟随默认参数,这意味着您无法在函数中定义。在函数中定义参数的正确顺序为: 位置参数或非默认参数,即 关键字参数或默认参数,即 仅关键字参数,即 var-keyword参数,即 是位置参数 是可选参数 是关键字参数 是列表参数 仅限关键字 是var-k