Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift相当于一个简单的JavaScript对象声明_Swift - Fatal编程技术网

Swift相当于一个简单的JavaScript对象声明

Swift相当于一个简单的JavaScript对象声明,swift,Swift,考虑以下JavaScript对象: const car = {type:"Fiat", model:"500", color:"white"}; 用这么短的一行代码编写的Swift语言的等效结构是什么?Swift是一种强类型语言。如果要初始化对象,必须首先定义其类型。Javascript是弱类型的,除此之外,它甚至不区分对象和字典(或数组) 在斯威夫特,你可以写 let car = ["type": "F

考虑以下JavaScript对象:

const car = {type:"Fiat", model:"500", color:"white"};

用这么短的一行代码编写的
Swift
语言的等效结构是什么?

Swift是一种强类型语言。如果要初始化对象,必须首先定义其类型。Javascript是弱类型的,除此之外,它甚至不区分对象和字典(或数组)

在斯威夫特,你可以写

let car = ["type": "Fiat", "model": "500", "color": "white"]
创建一个
[String:String]
字典,但在这种情况下这是个坏主意。相反,您应该正确声明一个类型:

struct Car {
   let type: String
   let model: String
   let color: String
}
然后初始化它:

let car = Car(type: "Fiat", model: "500", color: "white")
这几乎与Javascript中的相同,只是类型不同

类型赋予你更多的力量,“更短”并不意味着“更好”。你也可以这样做:

let car=(类型:“菲亚特”,型号:“500”,颜色:“白色”)

但在我看来,使用结构定义对象要干净得多。

是的,当然。Swift类将是更接近的等价物(引用类型),对吗?这意味着需要在上面加一个init()。。。因此,如果我理解的话,就没有JavaScript中那样的“快捷方式”。当然,“更短”并不意味着“更好”,完全同意。我只是想知道是否有一个较短的语法。@Kassagi类型定义必须在某个地方。在Swift中,定义类型的代码实际上比在Typescript或flow中简单得多。类型可以是匿名的。使用与另一个答案类似的元组,但不使用类型别名。@Jessy如果使用匿名类型,则很难将类型传递给函数。或者把它放在某个地方。@Jessy,很好,我编辑了我的答案。啊,忘了元组:)也是个好答案。