【发布时间】:2016-06-29 18:08:25
【问题描述】:
我们在这里谈论的是 MarkLogic 平台上的服务器端 java 脚本。 现在我很困惑:
// query
function testBoolean(){
return false
}
if(testBoolean()){'true'} else {'false'}
给出字符串“false”,因为 testBoolean() 是布尔类型。
现在我自己的函数也返回一个布尔值,但在if() 弄清楚之前我需要一个明确的比较...
function userExists(userName) {
// check if user exists in security database
var data = {userName : userName}
var options = {
"database" : xdmp.securityDatabase()
};
var res = xdmp.eval("declareUpdate(); var sec = require('/MarkLogic/security.xqy'); sec.userExists(userName)",
data,options);
return res
};
// make sure result is actually aboolean
// xdmp.type(userExists('scc-user-1'))
if(userExists('notextistinguser')){ 'true' } else {'false'}
给出字符串 "true" ???
用户“notextistinguser”不存在(duhhh),该函数返回值为“false”的布尔类型,但仍将其传递为 true。我尝试查看“不同交易”选项。
当我明确比较需要将 false 转换为字符串时?
userExists('notextistinguser')=='false'
那么现在我的自定义函数是什么类型的呢?它报告布尔值但充当字符串?
【问题讨论】:
标签: marklogic serverside-javascript