0

这是一个 FreePlane Groovy 代码。任务是提取节点详细信息并将其转换为整数,或者如果详细信息为空(空)或非数字,则将其保留为 1。最初,节点详细信息在纯文本布局中仅包含“4”。

这是我的代码:

def getRepetitions(node)
{
    if (node.details!=null){
        node['node.details']=node.details
        node['node.details.size()']=node.details.size()
        node['getPlain()']=node.details.getPlain()
        node['getPlain().size()']=node.details.getPlain().size()
        node['node.details.status']='not null'
     getRepetitions=(double)(node.details.getPlain())-48
    }else{
        node['node.details.status']='null'
        getRepetitions=1
    }
}

这是一个问题,因为代码不会将文本“4”转换为 4,而是转换为 52(顺便说一下,“4”的 ASCII 代码)。更糟糕的是,当我减去 48,使得差值等于数字本身时,它不会注意。

如果诸如 toNumber(...) 或 .to.num0 之类的功能可以使用,我不会发布此内容,但是在尝试实现此功能时,我看到了


“消息:方法没有签名:org.freeplane.plugin.script.proxy.Proxy$NodeRO.toNumber() 适用于参数类型:(java.lang.String) 值:[4] 行号:-1Result:No方法签名:org.freeplane.plugin.script.proxy.Proxy$NodeRO.toNumber() 适用于参数类型:(java.lang.String) 值:[4] at line -1"


提前致谢。

4

1 回答 1

0

看起来你可以得到这样的数字:node.details.num

您的错误中提到的代理就是这个接口。这将告诉您哪些方法可用于您的节点。

有什么关系getRepetitions=x?这看起来像 VB 代码。Groovy 等价于return语句(或表达式)。

于 2015-09-01T00:12:48.877 回答