美文网首页
swift 中的局部scope(局部作用域)该怎么表达?

swift 中的局部scope(局部作用域)该怎么表达?

作者: 90后的晨仔 | 来源:发表于2020-03-28 16:58 被阅读0次
1、oc中的写法,使用{ }来代表局部作用域
 -(void)loadView {
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
{
UILabel *titleLabel = [[UILabel alloc]
initWithFrame:CGRectMake(150, 30, 200, 40)]; titleLabel.textColor = [UIColor redColor]; titleLabel.text = @"Title";
[view addSubview:titleLabel];
} {
}
self.view = view; }
2、swift中的写法

如果我们想类 似地使用局部 scope 来分隔代码的话,一个不错的选择是定义一个接受 ()->() 作为函数的全局 方法,然后执行它:

 func local(_ closure: ()->()) { closure()
}
调用如下:
 override func loadView() {
let view = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 480)) view.backgroundColor = .white
local {
let titleLabel = UILabel(frame: CGRect(x: 150, y: 30, width: 200, height: 40)) titleLabel.textColor = .red
titleLabel.text = "Title"
view.addSubview(titleLabel)
}
local {
let textLabel = UILabel(frame: CGRect(x: 150, y: 80, width: 200, height: 40)) textLabel.textColor = .red
textLabel.text = "Text"
view.addSubview(textLabel)
}
self.view = view }
3、在 Objective-C 中还有一个很棒的技巧是使用 GNU C 的声明扩展来在限制局部作用域的时候同时 进行赋值,运用得当的话,可以使代码更加紧凑和整洁。
 self.titleLabel = ({
UILabel *label = [[UILabel alloc]
initWithFrame:CGRectMake(150, 30, 20, 40)]; label.textColor = [UIColor redColor];
label.text = @"Title";
[view addSubview:label];
label; });
4、swift中只能使用匿名闭包来实现第3条中的写法
 let titleLabel: UILabel = {
let label = UILabel(frame: CGRect(x: 150, y: 30, width: 200, height: 40)) label.textColor = .red
label.text = "Title"
return label
}()

相关文章

  • swift 中的局部scope(局部作用域)该怎么表达?

    1、oc中的写法,使用{ }来代表局部作用域 2、swift中的写法 如果我们想类 似地使用局部 scope 来分...

  • JS高级知识点汇总

    1.作用域 局部作用域:函数内部就是局部作用域。 ①在局部作用域申明的变量称为局部变量,局部变量只能在当前函数内部...

  • JS作用域链

    一、作用域 在JavaScript中,变量的作用域有全局作用域和局部作用域两种,局部作用域又称为函数作用域。 全局...

  • node.js小记 (0419) http源码解读

    什么是作用域? 作用域分局部作用域和全局作用域,同时作用域和变量有关,在局部作用域内可以访问到全局变量,在局部作用...

  • js作用域

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • 作用域,作用域链

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • Python中的非局部变量

    非局部语句可以让所列的标识符(identifier)指向最近的嵌套作用域(enclosing scope)中已经绑...

  • Python正式课第六天

    一、函数作用域 1. 局部作用域 L:local,局部作用域,即函数中定义的变量; 2. 嵌套作用域 E:encl...

  • 7. 模块化的使用函数2 Modularity Using Fu

    7.1 变量的作用域(scope) 局部变量:local全局变量:global 变量和函数的scope都可以是全局...

  • typescript笔记(二)

    一、作用域:全局作用域、局部作用域、类作用域 全局:可以在代码的任何位置使用; 局部:只能在声明它的代码块中; 类...

网友评论

      本文标题:swift 中的局部scope(局部作用域)该怎么表达?

      本文链接:https://www.haomeiwen.com/subject/zvlsuhtx.html