Swift 函数返回函数

3 swift

我尝试实现一个示例函数来返回一个函数。

JS 中的预期代码如下:

var class1 = function(val)
{
  var val1 = val;

  var obj = {
    say: function(val)
    {
      console.log(val1 + ' ' + val);
    }
  };
  return obj;

};

var obj1 = class1('hello');

obj1.say('ken');
obj1.say('tom');
Run Code Online (Sandbox Code Playgroud)

在 Swift 中,函数是一流的对象,但有点像在 JS 中那样难以编写。谢谢!

Jea*_*let 6

在这里,稍微调整了一下:

func mkGreeter(greeting: String) -> (String) -> () {
    return { name in println("\(greeting) \(name)") }
}

let greeter = mkGreeter("Hello")

greeter("Ken") // prints "Hello Ken"
greeter("Tom") // prints "Hello Tom"
Run Code Online (Sandbox Code Playgroud)

mkGreeter返回一个“记住”greeting参数并且可以直接调用的函数。