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

是否可以在Swift中访问阴影的顶级函数?

董飞
2023-03-14
问题内容

我试图编写一个Int扩展名以将Int限制在特定范围内,如下所示:

extension Int {
  func clamp(left: Int, right: Int) -> Int {
    return min(max(self, left), right)
  }
}

我遇到了编译器错误,过了一会儿我才意识到这min在这里被解释为Int.min,这是最低的常量Int

我可以重新实现,以避免min/,max但是我很好奇:有没有办法可以从Int扩展中引用那些?


问题答案:

您可以在前面加上模块名称Swift

extension Int {
    func clamp(left: Int, right: Int) -> Int {
        return Swift.min(Swift.max(self, left), right)
    }
}

只是为了好玩:您得到的结果与

extension Int {
    func clamp(left: Int, right: Int) -> Int {
        return (left ... right).clamp(self ... self).start
    }
}

使用的clamp()方法ClosedInterval



 类似资料:
  • 问题内容: javascript中的函数通过保持与其隐藏范围的(隐藏)链接来形成关闭。 当我们拥有函数(作为变量值)时,是否可以通过编程方式访问它? 真正的目标是理论上的,但一个演示可能是列出闭合的属性。 问题答案: 这是关闭的目的之一(使信息保密)。由于该函数已经执行,因此它的作用域变量不再可从外部获得(并且从未使用过)-只有在其作用域中执行的函数(仍然)可以访问。 但是,您可以通过getter

  • 有没有可能用蟒蛇硒在阴影DOM中找到元素? 示例用例: 我用输入了这个

  • 我可以通过以下方式访问dev中的用户名: 有没有其他方法可以通过webdriver访问ShadowDOM元素?

  • 问题内容: 我们的数据库中具有标量函数,用于返回诸如“客户的任务数量”或“客户的发票总额”之类的内容。 我们正在尝试并尝试不使用存储过程来执行此操作…通常,我们只需要在存储过程中调用此函数并将其作为单个值返回即可。 有没有一种方法可以在LINQ to SQL中使用或访问标量函数?如果是这样,那么我将有兴趣看到一个示例,该示例如何…如果没有,那么如何最好地处理这种情况…甚至是可行的。 问题答案: 如

  • 问题内容: 我想做这样的事情: 但是我得到这个错误 对成员’init()’的不明确引用 我知道我可以写 但是我想知道是否还有另一种方式。 问题答案: 问题在于不存在 仅 具有参数的初始化程序。 __ 目前只存在: 尽管该参数具有默认值,但是编译器仅在初始化程序的调用位置为您“填充”该默认值。 获取对函数本身的引用时,不会部分应用默认参数值,编译器也不会为默认参数值的所有可能组合生成额外的重载。后者

  • 是否可以使用Selenium/Chrome WebDriver访问影子DOM中的元素? 有人成功了吗?