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

如何声明Swift中的计算属性“抛出”?

叶阳
2023-03-14
问题内容
class SomeClass {
  var someProperty: Int {
    throw Err("SNAFU")
  }
}

对于上述代码,快速二进制文件抱怨“未处理错误,因为未将封闭函数声明为” throws”。

我如何在上面声明“ someProperty”“抛出”?

class SomeClass {
  var someProperty throws: Int {
  }
}

class SomeClass {
  var someProperty: throws Int {
  }
}

class SomeClass {
  var someProperty: Int throws {
  }
}

似乎不起作用。


问题答案:

Swift 5更新:仍然不可能。

从Swift 3开始:

您不能从计算的属性中抛出。如果要抛出,必须使用一个函数。Swift编程语言末尾的“

语言参考”部分的“声明”部分仅列出(和)作为函数和初始化声明的关键字。throws``rethrows



 类似资料:
  • 本文向大家介绍详解Swift中属性的声明与作用,包括了详解Swift中属性的声明与作用的使用技巧和注意事项,需要的朋友参考一下 一、引言 属性将值与类,结构体,枚举进行关联。Swift中的属性分为存储属性和计算属性两种,存储属性用于存储一个值,其只能用于类与结构体,计算属性用于计算一个值,其可以用于类,结构体和枚举。 二、存储属性 存储属性使用变量或者常量来存储一个值,在声明存储属性时,可以为其设

  • 问题内容: 如果我在Swift中需要自定义类型,可以,该怎么办?(类似于闭包语法typedef) 问题答案: 使用关键字代替

  • 问题内容: 如何在Python中声明静态属性? 这里写了我如何声明一个方法: Python中的静态方法? 问题答案: 在Python的类级别定义的所有变量均被视为静态 在类中,您可以使用相同的名称拥有两个不同的变量(一个静态变量和一个普通变量)。不要困惑。

  • 问题内容: 我正在尝试使用以下代码声明和初始化属性。 但是,出现以下错误。 有人知道这是怎么回事吗?我应该放弃使用声明内联初始化属性的尝试,而是对init()方法进行初始化吗? 问题答案: 正如@giorashc所说,由于swift的两阶段初始化,self尚未被初始化,因此您不能这样做。 但是我认为您可以创建一个懒惰的初始化:

  • 问题内容: 我希望能够用元数据注释我的类型和方法,并在运行时读取它们。 语言参考说明了如何声明属性用法,但实际上可以声明自己的属性吗? 阅读将需要某种反射机制,我根本无法在参考文献中找到这种反射机制,因此问题的第二部分可能是- 是否可能反射。如果这些功能在Swift中不可用,是否可以用Objective-C代码完成(但在Swift实例和类型上)? 相对不相关的注释:关于将什么建模为属性以及将哪些内

  • 问题内容: 在Swift WWDC简介会话中,展示了一个只读属性: 选择上述方法而不是使用方法有什么含义: 在我看来,您选择只读计算属性的最明显原因是: 语义 -在此示例中,将其作为类的属性而不是其执行的操作是有意义的。 简短明了 -避免在获取值时使用空括号。 显然,上面的示例过于简单,但是否有其他充分的理由选择一个?例如,是否有一些功能或属性的功能可以指导您决定使用哪种功能? 注意:乍看之下,这