你需要在Swift中声明变量的数据类型吗?

时间:2014-06-05 03:24:33

标签: swift

在Swift编程中,我们是否需要声明变量的数据类型,还是变量会根据值改变它的类型?

哪一个足以声明一个变量:

var MyVar: Int = 50

或者:

var Myvar = 50

7 个答案:

答案 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 是快速语言的强大功能。

请注意Swift是Type Safe Language