【发布时间】:2014-06-04 11:11:55
【问题描述】:
在swift编程语言中,常量可以像这样用let关键字表示
let MyConstant = 100
并使用如下类型名称隐式定义
let MyConstant: Int = 100
使用第二种方法有什么好处?
【问题讨论】:
在swift编程语言中,常量可以像这样用let关键字表示
let MyConstant = 100
并使用如下类型名称隐式定义
let MyConstant: Int = 100
使用第二种方法有什么好处?
【问题讨论】:
编译器推断类型以节省您(开发人员)的时间。为什么要在值很明显时指定它?假设它很明显。我很快就会谈到这一点。
所以,如果你愿意,你可以,那有什么意义呢? (没有双关语)
也许是为了清楚;您希望绝对清楚变量的类型是Int。另一个目的是 - 在某些情况下,例如浮点类型 - 编译器推断的默认值可能不是您想要的。例如:
let MyConstant = 100.0
双倍还是浮动?它假定 Double。如果你想要浮动,你必须明确:
let MyConstant: Float = 100.0
见The Swift Programming Language: Types:
在 Swift 中,类型信息也可以反向流动 方向——从根向下到叶子。在以下示例中, 例如,常量上的显式类型注释(:Float) eFloat 导致数字文字 2.71828 具有 Float 类型 Double 类型。
let e = 2.71828 // The type of e is inferred to be Double.
let eFloat: Float = 2.71828 // The type of eFloat is Float.
Swift 中的类型推断在单个表达式的级别上运行 或声明。这意味着推断所需的所有信息 表达式中省略的类型或类型的一部分必须是可访问的 对表达式或其子表达式之一进行类型检查。
【讨论】: