- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在检查来自 MongoDB 的 runCommand
方法的代码,用于我的教育:
function ( obj, extra ){
if ( typeof( obj ) == "string" ){
var n = {};
n[obj] = 1;
obj = n;
if ( extra && typeof( extra ) == "object" ) {
for ( var x in extra ) {
n[x] = extra[x];
}
}
}
return this.getCollection( "$cmd" ).findOne( obj );
}
我专注于这个 block :
var n = {};
n[obj] = 1;
obj = n;
现在,documentation说到方法:
A database command, specified either in document form or as a string. If specified as a string, db.runCommand() transforms the string into a document.
虽然这简短地解释了第三行,但我试图找出开发人员对这一行的想法:
n[obj] = 1;
我认为这样做的好处是,这可以用于对象的平等目的,也许可以在内部调用中使用,其中:
var checkEq = n["{num: 1}"];
将返回“truey”1,这对于快速和干净的相等性检查特别有用,但是经验丰富的开发人员对这种技巧有用的情况的任何见解/保证都会很好。
最佳答案
我相信n[obj] = 1;
用于规范化传入的命令。我们可以在 issue-commands 的文档中看到, 他们所有的示例命令都是 runCommand({command: 1})
的形式.例如,如果有人使用 runCommand("buildInfo")
然后是字符串 "buildInfo"
将被转换为对象 {"buildInfo": 1}
.
为什么他们使用这个对象表示法,键是命令,值是一,我无法理解。我梳理了文档和代码,原因是该值为 1,但我的搜索结果是空手而归。
关于javascript - 在 JavaScript 中指定为自己的对象索引的对象作为字符串的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33898487/
我正在实现谱聚类算法,我必须确保矩阵(拉普拉斯矩阵)是半正定矩阵。 检查矩阵是否为正定矩阵 (PD) 就足够了,因为可以在特征值中看到“半”部分。矩阵非常大(nxn,其中 n 是几千的数量级)所以特征
我是一名优秀的程序员,十分优秀!