Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scripting 如何在wren上定义一个简单的非方法函数?_Scripting_Wren - Fatal编程技术网

Scripting 如何在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 } 但什么都没

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
}
但什么都没用


我找到了一个解决方案:显然,我忘记了调用函数对象上的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是第一个类,不能支持这种语法。