gpt4 book ai didi

swift - 没有 catch block 的 "do statement"是什么意思?

转载 作者:搜寻专家 更新时间:2023-10-31 22:09:34 24 4
gpt4 key购买 nike

在阅读iOS 12 编程时,我遇到了几个示例代码,其中包含do 语句,没有catch block ,像下面这样:

    do {
let mars = UIImage(named:"Mars")!
let sz = mars.size

let r = UIGraphicsImageRenderer(size:CGSize(sz.width*2, sz.height), format:mars.imageRendererFormat)
self.iv1.image = r.image { _ in
mars.draw(at:CGPoint(0,0))
mars.draw(at:CGPoint(sz.width,0))
}
}

// ======

do {
let mars = UIImage(named:"Mars")!
let sz = mars.size

let r = UIGraphicsImageRenderer(size:CGSize(sz.width*2, sz.height*2), format:mars.imageRendererFormat)
self.iv2.image = r.image { _ in
mars.draw(in:CGRect(0,0,sz.width*2,sz.height*2))
mars.draw(in:CGRect(sz.width/2.0, sz.height/2.0, sz.width, sz.height), blendMode: .multiply, alpha: 1.0)
}
}

如果有人能解释没有 catch block 的 do 语句 的目的是什么,我将不胜感激。

最佳答案

这是一个新的代码范围:因此,如果您想重用一个变量名,您可以使用许多 do 语句。就像您问题中的片段一样,变量 marsszr 存在于两个范围内且没有错误。

do 语句可能会被标记,这使您能够跳出该范围:

scopeLabel: do {
for i in 0..<10 {
for j in 0..<20 {
if i == 2, j == 15 {
break scopeLabel
}
else {
print(i,j)
}
}
}
}

更多详情请看here .

关于swift - 没有 catch block 的 "do statement"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53210448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com