【问题标题】:Swift's definition of Type AnnotationSwift 对类型注解的定义
【发布时间】:2015-07-14 16:30:18
【问题描述】:

在 Swift 编程语言指南中,它对类型注解有这样的定义:“类型注解显式指定 variableexpression 的类型。”

我们都知道如何指定变量的类型,但是具体如何指定表达式的类型呢?

【问题讨论】:

  • let someNumber = 10 被编译器隐式确定为Int,但您可以明确地使用不同(或相同)的类型,例如let someNumber : Double = 10
  • 我在问如何指定表达式的类型,而不是变量。

标签: swift type-annotation


【解决方案1】:

Apple 文档说:“在

let someTuple: (Double, Double) = (2.14159, 2.71828)

表达式 someTuple 被指定为具有元组类型...”(强调我的)。因此,letvar 绑定是在表达式

变量的类型注释被说明为指定函数参数的类型:

func someFunction(a:Int) { /* ... */ }

【讨论】:

  • 这称为变量声明,而不是表达式。表达式应该返回一个值或导致副作用或两者兼而有之 - 变量声明不满足此定义。
  • 我倾向于同意你的观点,但我引用的是 Apple 文档。
  • 透视是(3.14, 2....)的类型,一个表达式,正在被指定。
  • 你是对的 - 右边是一个带括号的表达式。已选择答案。
【解决方案2】:

您使用冒号告诉编译器您的表达式或变量的类型。

例如

let year : Int = 2005 let isRaining : Bool = true

: Int 部分这里的类型注解。

【讨论】:

  • 我知道什么是类型注解。您的声明是变量声明,而不是表达式。我想知道如何在表达式上使用类型注释,就像指南建议的那样。
  • 我认为您对它的研究太多了。但是 - 继您对 Swift Programming Language guide 的引用之后,有以下引用:let someTuple: (Double, Double) = (3.14159, 2.71828)" 在第一个示例中,表达式 someTuple 被指定为元组类型(Double,Double)。"
  • 感谢您的报价。
猜你喜欢
  • 1970-01-01
  • 2021-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
相关资源
最近更新 更多