我不是javascript程序员,我完全不知道这个代码做了什么以及它用于什么:
function map(x) {
x = Object.create(null);
x.x = 0;
delete x.x;
return x;
}
Run Code Online (Sandbox Code Playgroud)
这是使用dart2js编译器时所获得的一部分.
我不是想了解整个上下文,但是分配属性并直接删除它有助于实现什么?
这看起来像是超越了一些内部JS引擎行为.
编辑:根据要求,这里是由dart2js生成的完整out.js(输入是来自维基百科的"Hello world!"示例):https://gist.github.com/Blutkoete/59be155b2642832e9acd383df0857d02
编辑2:gurvinder372的链接指示与"委托匿名JS对象的性能"有关,但我可能需要很多JS的经验才能理解.
我需要一个智能复制功能,以实现可靠,快速的文件复制和链接.文件非常大(从几千兆字节到超过200GB)并分布在很多文件夹中,人们在白天重命名文件和文件夹,所以我想使用哈希来查看我是否已经复制了一个文件,可能是一个不同的名称,只在这种情况下创建一个链接.
我是哈希全新的,我在这里使用这个函数哈希:
import hashlib
def calculate_sha256(cls, file_path, chunk_size=2 ** 10):
'''
Calculate the Sha256 for a given file.
@param file_path: The file_path including the file name.
@param chunk_size: The chunk size to allow reading of large files.
@return Sha256 sum for the given file.
'''
sha256 = hashlib.sha256()
with open(file_path, mode="rb") as f:
for i in xrange(0,16):
chunk = f.read(chunk_size)
if not chunk:
break
sha256.update(chunk)
return sha256.hexdigest()
Run Code Online (Sandbox Code Playgroud)
对于3GB文件,这需要一分钟,因此最终,16TB HD的过程可能非常慢.
现在我的想法是使用一些关于文件内部结构的额外知识来加快速度:我知道它们包含一个小标题,然后是大量的测量数据,我知道它们包含实时时间戳,所以我很确保两个文件的前16MB相同的可能性非常低(为了实现这一点,需要在完全相同的环境条件下同时创建两个文件).所以我的结论是,它应该足以只散列每个文件的第一个X MB.
它适用于我的示例数据,但由于我没有经验,我只想询问是否有一些我不知道的事情(隐藏的危险或更好的方法).
非常感谢你!
您在Internet上找到的默认迭代器循环如下所示:
for(vector<int>::iterator it=myVector.begin(); it!=myVector.end(); it++)
Run Code Online (Sandbox Code Playgroud)
现在我想用迭代器尝试一些更奇特的东西.我正在考虑运行例如向量的每个第三个元素(it + 3作为增量函数),但我担心如果我使用不同的编译器或不同的数据集,这种行为会爆炸,但it + 3可能不同vector::end(),但同时也没有指出有效的东西.
所以我想知道是否总是如此
it >= myVector.end()
Run Code Online (Sandbox Code Playgroud)
然后它没有指向我的向量中的元素?我可以使用<而不是!=安全的,我不会遇到特定于编译器实现的问题吗?
非常感谢你!