我正在尝试将列表中的元素打印到新行上,但我无法将其工作;
printElements :: [String] -> IO()
printElements (x:xs) = print x (some kind of newline, then loop?) printElements xs
Run Code Online (Sandbox Code Playgroud)
所以这:
["1","2","2","4"]
Run Code Online (Sandbox Code Playgroud)
会给:
1
2
3
4
Run Code Online (Sandbox Code Playgroud) 以下代码在线给我一个错误return p.foo(self).错误说:'P' does not have a member named 'foo'.
protocol P {
typealias T
func foo(c: C<T>) -> T
func foo2() -> T
}
class C<T> {
var p: P
init (p: P) {
self.p = p
}
func bar() -> T {
return p.foo(self);
}
}
Run Code Online (Sandbox Code Playgroud)
该协议P定义了一个相关的类型,它应该与任何专门的C类型正确匹配.我错过了什么吗?或不?
最近,我注意到滚动的性能正在降低。我找到了问题所在,发现原因是使用了UIFont(descriptor:size :)构造函数创建的字体。我更改了UIFont(name:size :)的构造函数,并解决了我的问题。
我在一个项目中隔离了问题。代码是:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var firstLabel: UILabel!
@IBOutlet weak var secondLabel: UILabel!
@IBAction func onStartTest(sender: AnyObject) {
startMeasurement()
let firstFont = UIFont(name: "Marker Felt", size: 16)
firstLabel.font = firstFont
finishMeasurement("UIFont(name)")
startMeasurement()
let secondFontDescriptor = UIFontDescriptor(name: "Marker Felt", size: 16)
let secondFont = UIFont(descriptor: secondFontDescriptor, size: 16)
secondLabel.font = secondFont
finishMeasurement("UIFont(descriptor)")
}
}
private var time: UInt64 = 0
public func startMeasurement() {
time = mach_absolute_time()
} …Run Code Online (Sandbox Code Playgroud)