Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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 3.0中从LINQ中选择()?_Swift_Linq - Fatal编程技术网

在swift 3.0中从LINQ中选择()?

在swift 3.0中从LINQ中选择()?,swift,linq,Swift,Linq,在Swift语言中是否存在LINQ Select方法的替代方案 例如,在c中,我可以执行以下操作: var ranks = cards.Select(a=> a.Rank).ToArray(); 但是我怎么能用Swift语言做同样的事情呢 这是语法糖: let ranks = cards.map({ (card: Card) -> Rank in return card.rank }) 所应用的语法包括: 论元类型推理 let ranks = cards.map { ca

在Swift语言中是否存在LINQ Select方法的替代方案

例如,在c中,我可以执行以下操作:

var ranks = cards.Select(a=> a.Rank).ToArray();
但是我怎么能用Swift语言做同样的事情呢

这是语法糖:

let ranks = cards.map({ (card: Card) -> Rank in
    return card.rank
})
所应用的语法包括:

论元类型推理

let ranks = cards.map { card -> Rank in
    return card.rank
}
let ranks = cards.map { card in
    return card.rank
}
返回类型推断

let ranks = cards.map { card -> Rank in
    return card.rank
}
let ranks = cards.map { card in
    return card.rank
}
隐式返回值

let ranks = cards.map { card in
   card.rank
}
匿名闭包参数

let ranks = cards.map { $0.rank }

查看C称之为lambdas的Swift名称以了解更多信息,

看起来就是它!非常感谢。@Andrew我详细介绍了如何使用各种语法糖类来达到我展示的最终形式。语言指南中有介绍。你一定要读它,它写得很好,如果你已经知道C,那么你很容易理解它。卡片的等级属性应该叫做等级,符合Swift命名惯例。C使用大写作为属性,小写或uu前缀作为实例变量。Swift没有实例变量,因此不需要区分。属性为LowerCamelCase,大写CamelCase为类型和静态属性保留