我是一名新手,正在学习Swift语言并试图在编程时养成良好的习惯。
在声明变量时,显式地声明变量类型是否是最佳实践?例如:
var str:String = "likeThis"
这样做是否可行呢:
var str= "likeThis"
我是一名新手,正在学习Swift语言并试图在编程时养成良好的习惯。
在声明变量时,显式地声明变量类型是否是最佳实践?例如:
var str:String = "likeThis"
var str= "likeThis"
你知道,两种选项都是可以接受的。然而,我见过的标准做法是不声明变量类型,除非必要,理由是这些多余的标记会降低可读性。
在这里,这是不必要的,因为编译器将推断变量类型。Ray Wenderlich's Swift style guide也同意这个观点。
在实践中很少需要编写类型注释。如果您在定义常量或变量时提供了初始值,Swift 几乎总是可以推断出用于该常量或变量的类型,如类型安全性和类型推断中所述。
并附有同一指南中的示例:
var currentLoginAttempt = 0
看起来使用var str= "likeThis"
让编译器推断类型是非常好的实践。
免责声明:我也是Swift的新手,这个答案仅基于我在课堂上学习和阅读语言指南所学到的知识。我没有Swift的专业经验。
Swift中的变量与常量
var str = "likeThis" // variable
let str = "likeThis" // constant
尽可能使用let
来声明变量是最佳实践,因为这样可以让编译器执行优化,否则它将无法执行。所以请记住:优先使用let
!
显式类型与推断类型
到目前为止,我们还没有为这些常量和变量明确设置任何类型,因为编译器有足够的信息自动推断。
例如,因为您将str
设置为"likeThis"
,编译器知道"likeThis"
是一个字符串,因此它会自动将str
的类型设置为字符串。
但是,如果您想要显式设置类型,也可以这样做。请尝试通过将设置tutorialTeam的行替换为以下内容来进行测试:
let str: String = "likeThis"
你是否曾经想过应该显式地设置类型,还是让编译器为你推断类型。我们认为,在可能的情况下,让编译器自动推断类型是更好的做法,因为这样你就可以获得 Swift 的主要优势之一:简洁易读的代码。
因此,请将该行切换回推断类型:
let str = "likeThis"
var myAgeOnFriday
处理到 var myAgeOnFriday : Int = 23
,我的答案现在似乎更明显和简洁。 - MCHAppy
var str: String = "likeThis"
可能是多余和不必要的。除了数字类型之外,可能需要一个例外。有时你需要明确地使用NSInteger
或CGFloat
,而Swift不会隐式转换。 - nhgrif