在Swift编程中,我们是否需要声明变量的数据类型,还是变量会根据值改变它的类型?
哪一个足以声明一个变量:
var MyVar: Int = 50
或者:
var Myvar = 50
答案 0 :(得分:12)
var myVar: Int = 50
或者:
var myVar = 50
它们完全相同。 : Int
是不必要的,因为您在声明中正在分配50
,因此Swift推断这是一个Int变量。
如果您要作为声明的一部分进行分配,那么您需要提供该类型的唯一时间是类型令人惊讶。例如:
var myChar : Character = "s"
如果你不说“角色”,你就会得到一个字符串。
答案 1 :(得分:3)
WWDC 2104 - Swift简介(会话402)
var languageName = “Swift” // inferred as String
var version = 1.0 // inferred as Double
var introduced = 2014 // inferred as Int
var isAwesome = true // inferred as Bool
也...
var = “Frog” // using unicode names
对于不会改变的变量,你也应该使用“let”。
答案 2 :(得分:1)
类型推断是Swift的重要组成部分之一。这意味着当您分配变量或常量时,系统会推断出它应该是什么类型。例如,如果您在设置变量之前声明了变量,则需要明确指定变量。
var someVar: Int
someVar = 15
这样编译器知道它何时被正确设置。
答案 3 :(得分:1)
您可以隐式声明变量:
var myVar = 50
或明确地:
var myVar:Int = 50
另请注意,您不使用分号;
来结束该行。
请注意,值永远不会隐式转换为其他类型。如果需要将值转换为其他类型,请显式创建所需类型的实例,如下所示:
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
答案 4 :(得分:1)
从一个完整的初学者视图(我的)看,我看到明确声明变量的以下好处 - 编译器将验证输入值 - 即,如果声明一个空变量然后用错误的类型值更新它你会被提示。
答案 5 :(得分:0)
第一个似乎只用于整数赋值。 我需要编写代码来测试。
更新
我是说, 定义为int不能分配给字符串,以下是错误的:var myVar: Int
myVar = "50"
这是错误的:
var myVar
myVar = "50"
因此,如果在定义变量时进行赋值,请同时使用两者。 否则,请使用:
var myVar: Int
因此,两个名单之间没有区别。
答案 6 :(得分:0)
请注意,我已将MyVar
更改为myVar
以遵循惯例。
var myVar: Int = 50
表示 - >消息到编译器将。
声明名为myVar
的变量of type
(:
)Int
和
var myVar = 50
将导致完全相同。但是这里编译器会为我们推断出类型。 (欢迎使用现代智能编译器)。 Type inference
是快速语言的强大功能。