Scripting 如何在wren上定义一个简单的非方法函数?
wren脚本语言的文档说明了如何在类中定义方法,但我想定义一个简单的函数,而不是方法。我试过这个:Scripting 如何在wren上定义一个简单的非方法函数?,scripting,wren,Scripting,Wren,wren脚本语言的文档说明了如何在类中定义方法,但我想定义一个简单的函数,而不是方法。我试过这个: #! /usr/bin/env wren square(n) { return n * n } System.print(square(3)) 这(省略除尝试的函数定义以外的部分: var square= {|n| return n * n } 还有这个 var square= Fn.new {|n| return n * n } 但什么都没
#! /usr/bin/env wren
square(n) {
return n * n
}
System.print(square(3))
这(省略除尝试的函数定义以外的部分:
var square= {|n|
return n * n
}
还有这个
var square= Fn.new {|n|
return n * n
}
但什么都没用
我找到了一个解决方案:显然,我忘记了调用函数对象上的call()方法。这是有效的:
#! /usr/bin/env wren
var square= Fn.new {|n|
return n * n
}
System.print(square.call(3))
然而,我发现很难相信所有用户定义的函数都必须通过显式调用“call”方法来调用
上一次我看到像这样的东西,其中“调用”必须明确写所有的时间是TI-99/4a的TI基本
但那是大约35年前的事了!;-)我找到了一个解决方案:显然我忘记了调用函数对象上的call()方法。这项工作:
#! /usr/bin/env wren
var square= Fn.new {|n|
return n * n
}
System.print(square.call(3))
然而,我发现很难相信所有用户定义的函数都必须通过显式调用“call”方法来调用
上一次我看到像这样的东西,其中“调用”必须明确写所有的时间是TI-99/4a的TI基本
但那是大约35年前的事了!;-) 这之前已经讨论过:。简而言之,Wren是第一个类,不能支持此语法。这在之前已经讨论过:。简而言之,Wren是第一个类,不能支持这种语法。