我有一[String:String]本字典.我想获得与包含字符串"S"的任何键相关联的值.订单无关紧要.
这很简单:只需获取所有键,迭代,返回第一个匹配条件.
但是,我想用一种快速优雅的方法来做到这一点.使用a filter或map函数的东西.这就是我迷路的地方......
我觉得在以下代码中使用swift inout参数有点丢失:
var shouldContinue: Bool = true
func doSomeWork1(shouldContinue: inout Bool)
{
while shouldContinue
{
// ERROR: the compiler wants: doSomeWork2(shouldContinue: &shouldContinue)
doSomeWork2(shouldContinue: shouldContinue)
}
}
func doSomeWork2(shouldContinue: inout Bool)
{
while shouldContinue
{
}
}
Run Code Online (Sandbox Code Playgroud)
为什么编译器需要doSomeWork2(shouldContinue: &shouldContinue)而不是the compiler wants: doSomeWork2(shouldContinue: shouldContinue)?是不是shouldContinuedoSomeWork1()范围内的指针???
我需要将日期初始化为已知的固定时间点。Swift缺乏日期字面量,我尝试过:
extension DateFormatter
{
convenience init(_ format: String)
{
self.init()
self.dateFormat = format
}
}
extension Date
{
init?(_ yyyyMMdd: String)
{
let formatter = DateFormatter("yyyyMMdd")
self = formatter.date(from: yyyyMMdd)
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法编写self = ...或不能return formatter.date...作为初始化程序的一部分。
但是,我非常想写:
let date = Date("20120721")
Run Code Online (Sandbox Code Playgroud)
我该如何实现?