
58
|
第
2
章
首先,匿名函数是降低代码的命令性,增强函数性的一种行之有效的方式:动作在需要
时才发生,而无须借助一系列的准备步骤。如下是个常见的
Cocoa
示例:创建并配置
一个
NSMutableParagraphStyle
,然后在对
addAttribute:value:range:
的调用中使用
(
content
是个
NSMutableAttributedString
)。
let para = NSMutableParagraphStyle()
para.headIndent = 10
para.firstLineHeadIndent = 10
// ... more configuration of para ...
content.addAttribute(
NSParagraphStyleAttributeName,
value:para, range:NSMakeRange(0,1))
我觉得上面的代码丑陋至极。我们只在
addAttribute:value:range
调用中才需要将
para
作为
value:
实
参传递进去,因此在调用中创建并配置它才是更好的做法。
Swift
允
许我们这么做,我更倾向于下面这种写法:
content.addAttribute(
NSParagraphStyleAttributeName,
value: {
let para = NSMutableParagraphStyle()
para.headIndent = 10
para.firstLineHeadIndent ...