最佳做法是在声明中显式声明变量类型吗?

时间:2015-04-10 00:15:58

标签: swift variables declaration

我是Swift语言的新手,试图在编码时养成健康的编程习惯。

最佳做法是在声明中显式声明变量类型吗?例如:

var str:String = "likeThis"

或者这是否可以接受:

var str= "likeThis"

3 个答案:

答案 0 :(得分:3)

如您所知,任何一种选择都是可以接受的。但是,我所看到的标准做法是除非必要,否则不要声明变量类型,理由是这些无关的令牌会降低可读性。

这里,它是不必要的,因为编译器将推断变量类型。 Ray Wenderlich's Swift style guide同意。

答案 1 :(得分:0)

根据Swift Language Guide

  

您很少需要在实践中编写类型注释。如果在定义的点处为常量或变量提供初始值,则Swift几乎总是可以推断出用于该常量或变量的类型,如Type Safety and Type Inference中所述。

the same guide为例:

00 A4 04 00 0E 325041592E5359532E4444463031 00 ( adding Le = 0x00 at last) 

看起来让编译器使用var currentLoginAttempt = 0 推断类型是非常好的做法。

免责声明:我也是Swift的新手,这个答案完全基于我在课堂上学到的东西和阅读Language Guide。我对Swift没有专业经验。

答案 2 :(得分:-2)

Swift中的变量与常量

var str = "likeThis" // variable
let str = "likeThis" // constant

尽可能使用let声明最佳实践,因为这将允许编译器执行其他方式无法执行的优化。所以请记住:首选let

明确与推断的打字

到目前为止,我们还没有为这些常量和变量显式设置任何类型,因为编译器有足够的信息来自动推断它。

例如,因为您将str设置为"likeThis",编译器知道"likeThis"是一个String,所以它会自动将str的类型设置为String

但是,您可以根据需要明确设置类型。通过将设置tutorialTeam的行替换为以下内容来尝试此操作:

let str: String = "likeThis"

您想知道是否应该显式设置类型,或让编译器为您推断类型。我们认为让更好的练习让编译器尽可能自动推断类型,因为这样你就可以获得Swift的一个主要优点:简洁易读的代码。

因此,将行切换回推断的输入:

let str = "likeThis"