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

迅捷的“ with”关键字

乌骏
2023-03-14
问题内容

Swift中“ with”关键字的目的是什么?到目前为止,我发现如果需要覆盖现有的全局函数(例如toDebugString),则可以使用关键字。

    // without "with" you get "Ambiguous use of 'toDebugString'" error
    func toDebugString<T>(with x: T) -> String

    {
        return ""
    }

    toDebugString("t")

问题答案:

with不是 一个关键字-它只是一个外部的参数标识。这也可以:

func toDebugString<T>(whatever x: T) -> String

由于toDebugString<T>(x: T)已经定义了函数,因此通过使用外部参数,您将创建 重载
:相同的函数名称,但参数不同。在这种情况下,参数是相同的,但是用一个外部名称标识,并且迅速使它成为具有不同签名的方法,从而导致重载。

为了证明这一点,请将其粘贴在操场上:

func toDebugString<T>(# x: T) -> String {
    return "overload"
}

toDebugString(x: "t") // Prints "overload"
toDebugString("t") // Prints "t"

第一个调用您的重载实现,而第二个使用现有功能

建议阅读:功能参数名称



 类似资料:
  • 问题内容: 我正在尝试编写一个快速的iOS应用程序,它将记录用户的声音。我已经迅速编写了以下代码,但是无法从用户那里请求麦克风权限。它可以正常打印,但从不记录音频,并且在“隐私”下的“设置”窗格中未列出该应用程序。如何快速请求录制权限? 问题答案: 从iOS 7开始,您需要检查它是否响应选择器 我已经使用带有 iOS 8 Beta* 的 iPhone 5S 测试了此代码,它可以完美运行。授予权限后

  • 问题内容: 自从我上次使用Eclipse已经有一段时间了。我曾经喜欢这个方便的快捷键,该快捷键将所有导入添加到源文件的顶部,但是我忘记了它。有谁知道这个捷径是什么? 问题答案: + + (<-‘O’不是零) 注意:此快捷方式还会删除未使用的导入。

  • 问题内容: 如何轻松将元素添加到字典中的数组?总是抱怨或 如果我只是将数组分配给var,先对其进行修改,然后再将其重新分配给dict,我是否会复制所有内容?那既不会高效又不会优雅。 问题答案: Swift beta 5已添加了此功能,并且您在几次尝试中都采用了新方法。的解缠运营商和现在穿过值要么运营商或方法调用。也就是说,您可以通过以下任何一种方式将其添加到该数组中: 与往常一样,请小心使用哪个运

  • 问题内容: 如果有人按字母,该如何触发事件g? (所有字母BTW的字符映射在哪里?) 问题答案: jQuery Hotkeys使你可以在代码中的任何地方监视键盘事件,从而支持几乎任何按键组合。 要将Ctrl+ 绑定c到函数(f),例如:

  • 查看快捷键,在设置界面中搜索 “keymap”: 设置自己的快捷键 比如将代码变更 commit ,webstorm 默认是没有配置快捷键的,我们设置个 shift + c 。 搜索 commit : 找到操作项后,添加个新的快捷键,如果快捷键有冲突,webstorm 会有提示。 默认配置下的常用快捷键 mac book 下文的 ctrl 替换成 command 键。 查找/代替 快捷键 说明 c

  • Sketch 有一系列为数不多但相当实用的快捷键,他们能大大提高你的工作效率。   通用快捷键   ・control+h: 触发选区手柄 ・control+l: 触发自动参考线 ・control+g: 触发网格 ・Space: 抓手工具 ・Enter: 编辑所选图层 ・⌘+3: 滚动至所选图层 ・⌘+2: 放大所选图层 ・Z: 放大工具。按住 Z 键,用鼠标单击拖拽出一个区域放大。缩小啧使用 Z