仓颉原生应用编程语言教程(第3期)
·
函数作为一等公民
仓颉中函数可以作为普通表达式使用,可以作为参数传递,作为函数返回值,被保存在其他数据结构中,或者赋值给一个变量使用。
|
func f(x: Int) { return x } let a = f let square = {x: Int => x * x} // lambda 表达式 // 函数嵌套定义,以及函数作为返回值 func g(x: Int) { func h(){ return f(square(x)) } return h } func h(f: ()->Int) { f() } let b = h(g(100)) |
除了上面例子中的全局函数,对象或结构体等数据类型的成员函数同样也可以作为一等公民使用。下面的例子中,对象o的成员函数resetX作为普通表达式被赋值给变量f,对f的调用则会改变对象o中成员变量x的值。
|
class C{ var x = 100 func resetX(n: Int){ x = n return x } } main(){ let o = C() let f = o.resetX // 成员函数作为一等公民 f(200) print(o.x) // 200 } |
更多推荐


所有评论(0)