我想在我的网址参数上构建我的Example.o: file not recognized: File format not recognized
对象。
data
我想检查它们是否先存在,然后相应地设置它。
我拥有的是否足够好?
我应该使用switch语句吗?
答案 0 :(得分:4)
我拥有的是否足够好?
是
如果您希望缩短它,请在预期的属性名称上使用循环。
我应该使用switch语句吗?
没有。 // List - my custom class
class RecordsList: NSObject {
var listObj: List!
init (inout list: List!)
{
self.listObj = list
}
func printData()
{
println(self.listObj.name)
}
}
var listObject = List()
listObject.name = "FirstValue"
RL = RecordsList(&listObject)
listObject.name = "SecondValue"
RL.printData()
// I expect: "SecondValue"
// But result: FirstValue =(
语句的目的完全不同。
答案 1 :(得分:2)
由于您不断检查不同的密钥,因此切换语句在您的情况下无法正常工作。 Switch可以处理单个值,因此您可以根据courseContentId的值使用它来执行不同的操作:
switch(params.courseContentId ) {
case undefined:
code block
break;
case 10:
code block
break;
default:
default code block
}
答案 2 :(得分:2)
我不会使用switch或if,但这段代码会做同样的事情,只会更好:
var $data = {};
var params = {};
params.assessmentId = 11;
for (var n in params) {
$data[n] = params[n]
}
console.log($data);
您只是将值从一个对象复制到另一个对象,因此您只需循环遍历它,$data
对象将只接收params
中设置的值。
答案 3 :(得分:1)
在您提供的示例中,您实际上并不需要所有switch
语句。只需分配$ data属性即可。如果params中的某些内容未定义,则不会反映在$ data对象上。
PS。 switch语句对您没有任何帮助。 switch语句用于根据THE SAME变量的多个可能值分支代码。没有不同的。
答案 4 :(得分:1)
如果您只有这些案例,那么它看起来还不错!!但如果你有很多条件需要检查那么你会有一张支票, 跳转到下一个子句,检查,跳转到下一个子句等等。
另一方面,用"开关" JVM加载要比较的值并迭代值表以查找匹配,这在大多数情况下更快。
注意:switch语句并不总是比if语句快。它比if-else语句的长列表更好地扩展,因为switch可以基于所有值执行查找。但是,对于一个短暂的条件,它不会更快,可能会更慢。