performance - Swift 显式与推断类型 : Performance

标签 performance types compiler-construction swift

我正在阅读有关 Swift 的教程 ( http://www.raywenderlich.com/74438/swift-tutorial-a-quick-start ),它预定义为不显式设置类型,因为这样更易读。

我不太同意这一点,但这不是问题所在。我的问题是:就性能(编译器...)而言,显式设置类型是否更有效?

例如,这个:var hello: Int = 56 是否比这个:var tutorialTeam = 56

更有效?

最佳答案

使用显式类型的代码和使用类型推断的代码之间在性能上没有差异。每种情况下的编译输出都是相同的。

当您省略类型时,编译器会简单地推断它。

accepted answer 中观察到的非常小的差异只是您通常的微观基准测试伪影,不可信任!

是否包含显式类型是个人喜好问题。在某些情况下,它可能会使您的代码更具可读性。

它对您的代码产生影响的唯一一次是当您想要指定一种与编译器推断的类型不同的类型时。例如:

var num = 2

上面的代码推断 num 是一个 Int,因为它是用整数文字初始化的。但是,您可以“强制”它成为 Double,如下所示:

var num: Double = 2

关于performance - Swift 显式与推断类型 : Performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588893/

相关文章:

typescript - 如何在 TypeScript 2 项目中安装 Firebase 3 的类型?

Java命令行编译问题和依赖关系

c# - 我可以改进嵌入式 C# 上的 "double.IsNaN( x )"函数调用吗?

PHP 变量和极慢的 MySQL 查询

jquery - jQuery 为何这么快?

java - 使用一个简单的命令从命令行将一堆 .Java 文件转换为 .Jar 文件

c++ - 编译器在处理 volatile 内存位置时必须遵循哪些规则?

python - 如何使用 python 加速最近邻搜索?

go - 如何表达 "slice of (string or ' 其他此类 slice 的类型')"

sql - 如何将一种数据类型的所有 Sql 列更改为另一种数据类型