swift中变量的正确声明

swift中变量的正确声明,swift,Swift,大家好,我是swift语言的新手,首先我不知道这是否是我正在创建的一个允许的主题,但我需要了解这一点,并且在web上找不到关于这一点的任何信息 在swift中,我意识到有两种方法可以声明变量及其类型。但是我不知道它们之间的区别,也不知道该在哪里使用 如果我错了,请纠正我。。 首先:什么时候 var anything = "When I do it like this my anything variable becomes type of string" 但是如果我打字 var anythi

大家好,我是swift语言的新手,首先我不知道这是否是我正在创建的一个允许的主题,但我需要了解这一点,并且在web上找不到关于这一点的任何信息

在swift中,我意识到有两种方法可以声明变量及其类型。但是我不知道它们之间的区别,也不知道该在哪里使用

如果我错了,请纠正我。。 首先:什么时候

var anything = "When I do it like this my anything variable becomes type of string" 
但是如果我打字

var anything = 12 //it's type Int 
等等。。除此之外,我还可以将这些变量声明为

var anything:Int

到目前为止,我对此很满意,但是将全局变量声明为

var anything:String 


我如何决定使用哪一个和在哪里?谢谢

可以推断Swift类型(根据上下文确定)。在

Int
是多余的,因为它可以从上下文中推断出来(
Int
是整数文本的默认值)。但是,有时您需要更具体的设置,如
Int8
。然后可以显式声明类型或使用initialiser推断类型:

var anything: Int8 = 12


就我个人而言,只要有可能,我就使用类型推断,而且还没有遇到任何问题。

可以推断Swift类型(根据上下文确定)。在

Int
是多余的,因为它可以从上下文中推断出来(
Int
是整数文本的默认值)。但是,有时您需要更具体的设置,如
Int8
。然后可以显式声明类型或使用initialiser推断类型:

var anything: Int8 = 12


就我个人而言,只要有可能,我就使用类型推断,而且还没有遇到任何问题。

你的问题很基本,但我理解学习一门新语言的困难,你需要帮助。这是标准的学习曲线

Swift使用一种称为类型推断的技术。它可以根据初始值确定变量的类型

var v = 8
自动将v设为Int

var v:Int = 8
同样如此

您始终可以使用推断类型。尽量使代码可读,如果类型推断提高了可读性,那么就使用它。 如果在编写代码2周后需要更多的上下文才能理解代码,请使用显式声明的类型


在声明没有初始值的变量时,始终必须显式声明类型。在这种情况下,编译器没有机会猜测类型。

您的问题非常基本,但我理解学习新语言的困难,您需要帮助。这是标准的学习曲线

Swift使用一种称为类型推断的技术。它可以根据初始值确定变量的类型

var v = 8
自动将v设为Int

var v:Int = 8
同样如此

您始终可以使用推断类型。尽量使代码可读,如果类型推断提高了可读性,那么就使用它。 如果在编写代码2周后需要更多的上下文才能理解代码,请使用显式声明的类型


在声明没有初始值的变量时,始终必须显式声明类型。在这种情况下,编译器没有机会猜测类型。

我将从后面开始。两者的区别是什么
var anything:String
var anything:String=String()

第一个声明一个名为
anything
String
类型的变量,第二个通过调用String的构造函数初始化它。在第一种情况下,您必须告诉Swift的编译器该如何处理这个变量——它是有值还是为零。因此,如果您不知道这一点,最好将其声明为可选:

var anything:String?


关于像这样初始化的类型,
var anything=12
,Swift根据上下文确定类型,在这种情况下,它是一个
Int

,我将从后面开始。两者的区别是什么
var anything:String
var anything:String=String()

第一个声明一个名为
anything
String
类型的变量,第二个通过调用String的构造函数初始化它。在第一种情况下,您必须告诉Swift的编译器该如何处理这个变量——它是有值还是为零。因此,如果您不知道这一点,最好将其声明为可选:

var anything:String?


关于像这样初始化的类型
var anything=12
,Swift根据上下文确定类型,在这种情况下,它是
Int

var:Int不起作用;)您仍然需要为变量指定一个名称var:Int无效;)您仍然需要给变量一个名称var anything:String var anything:String=12和var anything:String=String()的区别是什么1) 声明
String
variable 2)语法错误3)声明
String
变量并为其分配空字符串。变量anything:String var anything:String=12和变量anything:String=String()的区别是什么1) 声明
String
variable 2)语法错误3)声明
String
变量并为其分配空字符串。顺便说一句,不要忘记如果它是常量,则应始终使用“let”。顺便说一句,如果它是常量,则应始终使用“let”。
var v:Int = 8