小编use*_*349的帖子

允许重复属性名称的目的是什么?

我正在阅读MDN javascript参考,因此以下代码不再返回false:

function haveES6DuplicatePropertySemantics(){
  "use strict";
  try {
    ({ prop: 1, prop: 2 });

    // No error thrown, duplicate property names allowed in strict mode
    return true;
  } catch (e) {
    // Error thrown, duplicates prohibited in strict mode
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

在ECMAScript 5严格模式代码中,重复的属性名称被认为是SyntaxError.通过引入计算属性名称可以在运行时进行复制,ECMAScript 6已经删除了此限制.

我的问题是,在初始化器中允许重复的属性名称有什么实际好处?我可以看到,当动态分配对象属性时,有时会发生这种情况,但由于优先顺序显然决定了在新创建的对象上实际设置了哪些属性 - 这似乎不仅仅是最好避免的无限行为.

javascript standards ecmascript-6

20
推荐指数
1
解决办法
4444
查看次数

我如何将Valgrind与Ruby一起使用?

我已经按照valgrind-docs的建议编译了ruby(2.2.4).根据至少几个虽然模糊不清的资源,人们已经成功地使用了Valgrind和红宝石,但是更多的选择似乎存在于debugflags='-g' optflags='-O0' ./configure --with-valgrind--with-valgrind1.9.3

./doc/ChangeLog-1.9.3:62800:*configure.in:add --with-valgrind.

我所遇到的错误与类似的python问题中提到的错误相同,即使是基本的测试程序也会报告"参考丢失"/"可能丢失"的大量误报.

样本输出:

valgrind --tool=memcheck --leak-check=yes --max-stackframe=8382448 --track-origins=yes ruby test.rb

==15105== HEAP SUMMARY:
==15105==     in use at exit: 840,786 bytes in 8,050 blocks
==15105==   total heap usage: 10,496 allocs, 2,446 frees, 2,373,732 bytes allocated
==15105== 
==15105== 16 bytes in 1 blocks are possibly lost in loss record 87 of 5,245
==15105==    at 0x4C2ABD0: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==15105==    by 0x1511F4: objspace_xmalloc0 (gc.c:7780)
==15105== …
Run Code Online (Sandbox Code Playgroud)

ruby valgrind memory-leaks

9
推荐指数
1
解决办法
1175
查看次数

Django如何指定基本网址

所以应该有一个非常基本的方法来做到这一点,但不幸的是我似乎无法找到它。

如何设置 Href 链接以指向“基本网站网址”+“链接”,而不是将链接添加到当前页面。

即如果我在 www.example.com/content1/

我希望搜索功能转到 www.example.com/search/

而不是 www.example.com/content1/search

我可以只指定“www.example.com/search/”,但是如果它的页面部署在本地,我最终会得到一堆指向不存在页面的链接,反之亦然。如何使用 DJango 指定基本托管 URL(无论服务器正在运行,无论是主机名、当前服务器 IP、本地主机等)。

html django

6
推荐指数
1
解决办法
1万
查看次数

Python:为什么列表理解比for循环慢

基本上这些是相同的功能 - 除了列表理解使用,sum而不是x=0; x+=因为后者不受支持.为什么列表理解编译成40%的速度?

#list comprehension
def movingAverage(samples, n=3): 
    return [float(sum(samples[i-j] for j in range(n)))/n for i in range(n-1, len(samples))]

#regular
def moving_average(samples, n=3):
    l =[]
    for i in range(n-1, len(samples)):
        x= 0
        for j in range(n): 
            x+= samples[i-j]
        l.append((float(x)/n))
    return l
Run Code Online (Sandbox Code Playgroud)

对于样本输入的计时,我使用了变体 [i*random.random() for i in range(x)]

python performance list-comprehension

6
推荐指数
1
解决办法
2232
查看次数

Django + Django-Pipeline with Javascript"Require"

我有一个调用requireJavascript库的模块.我试图用Django-Pipeline压缩我的.js文件,但在collectstatic网页给出错误之后:

UncaughtReferenceError: require is not Defined
Run Code Online (Sandbox Code Playgroud)

如果我不使用Django-Pipeline来压缩文件,那么正常的测试/部署对于collect-static工作正常.在不破坏依赖性的情况下缩小我的.js文件的正确设置是什么 - 文档有点稀疏.django-pipeline是正确的选择吗?

编辑:我已经尝试确保首先在管道中压缩"必需"模型,但我似乎无法压缩require从中调用的模块而不返回错误.

javascript python django django-pipeline

5
推荐指数
1
解决办法
1018
查看次数

Python:为什么动态添加的__repr__方法不会覆盖默认值

即使在原始的repr方法被覆盖之后,python还在哪里获得仍然会产生'foo'的repr

class Test(object):
    def __init__(self, name, number_array): 
        self.name = name
        self.number_array = number_array
    def __repr__(self):
        return str(self.name) 

def custom_repr(self): 
    return str(self.name*4)

>>> A = Test('foo', [1,2])
>>> A
foo
>>> A.__repr__ = custom_repr.__get__(A, A.__class__)
>>>A.__repr__()
foofoofoofoo
>>>A
foo
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
720
查看次数

朱莉娅:如何避免自动升级类型的变化?

例如:

n::Uint8 = 0x00
x::Uint8 = n + 0x10
ERROR: type: typeassert: expected Uint8, got Uint64
Run Code Online (Sandbox Code Playgroud)

我想这是因为methods(+)对于a::Uint8, b::Uint8没有定义,因此n被自动晋升为Uint64.是否有更好的方法来解决这个问题,而不是在每次操作后将所有内容都重新投入到预先提升的类型中?这不是解释器应该能够自动处理的东西(即,如果它被告知x应该Uint8在添加后分配一个)?

types julia

5
推荐指数
1
解决办法
143
查看次数

D-Bus如何创建和发送Dict?

我有一个进程向DBus公开一个方法,其中一个参数采用以下类型签名a{sv}:

{String,Variant}的词典

该libDBus文档dbus_message_append_args未能提供此充分参考.某些信息出现在容器类型下规范中,具体为:

DICT_ENTRY的工作原理与结构完全相同,但它使用花括号而不是括号,它有更多的限制.限制是:它仅作为数组元素类型出现; 它在花括号内有两个完整的类型; 第一个完整类型("键")必须是基本类型而不是容器类型.实现不得接受数组之外的dict条目,不得接受具有零个,一个或两个以上字段的dict条目,并且不得接受具有非基本类型键的dict条目.dict条目始终是键值对.


在尝试附加dict时,我收到以下错误消息:

type dict_entry isn't supported yet in dbus_message_append_args_valist
Run Code Online (Sandbox Code Playgroud)

虽然我实际上正在使用dbus_message_append_args(我猜错误消息有点偏离).

还有两种方法可以dbus_message_append_args()使用:

dbus_message_iter_append_basic()dbus_message_iter_append_fixed_array()

虽然我可以使用以下内容创建一个空的Dict容器:

  const char * container_d_sig = "{sv}";
  DBusMessageIter iter, sub;
  dbus_message_iter_init_append(msg, &iter);
  dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, container_d_sig, &sub);
  dbus_message_iter_close_container(&iter, &sub);
Run Code Online (Sandbox Code Playgroud)

这两种追加方法似乎都不支持添加结构.不知道该尝试什么...

c ipc dbus

5
推荐指数
1
解决办法
2189
查看次数

Ruby从哈希表中弹出一个元素?

我正在看http://ruby-doc.org/core-1.9.3/Hash.html,似乎没有pop方法吗?我想我虽然想念什么...

if (x = d['a']) != nil
  d.delete('a') 
end
Run Code Online (Sandbox Code Playgroud)

ruby

5
推荐指数
1
解决办法
2266
查看次数

为什么设置与代理不兼容?

JavaScript 似乎与JavaScript 代理完全不兼容,试图Proxy()使用Set()

var p = new Proxy(new Set(), {
  add(target, val, receiver) {
    console.log('in add: ', target, val, receiver)
  }
})
p.add(55)
Run Code Online (Sandbox Code Playgroud)

导致VMError:

Uncaught TypeError: Method Set.prototype.add called on incompatible receiver [object Object]
    at Proxy.add (native)
    at <anonymous>:1:3
Run Code Online (Sandbox Code Playgroud)

事实上,代理a Set()以任何方式断断续续 - 即使我们的代理处理程序什么都不做!比较p = new Proxy({}, {})VS p = new Proxy(new Set(), {}).(这适用于Firefox(52.0.2)和Chromium(57.0.2987.133).)

我似乎无法为此找到可信的参考或文档,为什么JavaScript不能Proxy成为Set对象,为什么它会遇到VM错误?

javascript proxy

5
推荐指数
1
解决办法
387
查看次数