closurecurrytest.groovy
来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 84 行
GROOVY
84 行
/**
* @author Hallvard Tr総teberg
* @version $Revision: 2129 $
*/
class ClosureCurryTest extends GroovyTestCase {
void testCurry() {
def clos1 = {s1, s2 -> s1 + s2}
def clos2 = clos1.curry("hi")
def value = clos2("there")
assert value == "hithere"
def clos3 = {s1, s2, s3 -> s1 + s2 + s3}
def clos4 = clos3.curry('a')
def clos5 = clos4.curry('b')
def clos6 = clos4.curry('x')
def clos7 = clos4.curry('f', 'g')
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 -> s1 + s2 + s3}.asWritable()
clos4 = clos3.curry('a')
clos5 = clos4.curry('b')
clos6 = clos4.curry('x')
clos7 = clos4.curry('f', 'g')
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 -> s1 + s2 + s3}
clos4 = clos3.curry('a').asWritable()
clos5 = clos4.curry('b').asWritable()
clos6 = clos4.curry('x').asWritable()
clos7 = clos4.curry('f', 'g').asWritable()
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 -> s1 + s2 + s3}
clos4 = clos3.curry('a').clone()
clos5 = clos4.curry('b').clone()
clos6 = clos4.curry('x').clone()
clos7 = clos4.curry('f', 'g').clone()
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 -> s1 + s2 + s3}
clos4 = clos3.curry('a').asWritable().clone()
clos5 = clos4.curry('b').asWritable().clone()
clos6 = clos4.curry('x').asWritable().clone()
clos7 = clos4.curry('f', 'g').asWritable().clone()
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?