问题列表 - 第8135页

你如何写一个在Erlang中递归的乐趣?

我试图在Erlang shell中编写一个递归的乐趣,但我一直得到一个未绑定的变量异常:

1> Foo = fun(X) -> Foo(X) end.
* 1: variable 'Foo' is unbound
Run Code Online (Sandbox Code Playgroud)

这可能不言而喻,但我不是想创造一个无限循环!这只是我得到的错误的一个简单例子.

erlang recursion

35
推荐指数
3
解决办法
9366
查看次数

ASP.NET GridView问题

好吧,我有一个gridview,我已经自己定义了列并关闭自动生成但现在我有问题,我无法访问GridView.SelectedRow.DataItem.

因为它现在变成了null,当它在打开自动生成时有一个值.

编辑:我需要的是一种方法来保存行的ID而不向用户显示ID,所以如果有任何方法可以做到这一点?

asp.net

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

数字比较 - Python Bug?

在我的代码内部深处,如果嵌套在一个类方法内部嵌套,我将某个索引值与某个列表的长度进行比较,以验证我可以访问该索引.代码看起来像这样:

if t.index_value < len(work_list):
    ... do stuff ...
else:
    ... print some error ...
Run Code Online (Sandbox Code Playgroud)

为了澄清,index_value至少为零(在其他地方验证).令我惊讶的是,即使我知道index_value数据有效,代码也会继续使用"else:"子句.我添加了一些特殊的调试代码:

print('Checking whether '+str(t.index_value)+"<"+str(len(work_list)))

x = t.index_value
y = len(work_list)

print(x)
print(y)
print(x<y)

if t.index_value < len(work_list):
    ... do stuff ...
else:
    ... print some error ...
Run Code Online (Sandbox Code Playgroud)

以下是输出:

>> Checking whether 3<4
>> 3
>> 4
>> False
Run Code Online (Sandbox Code Playgroud)

谁能帮我理解这里发生了什么?

进一步澄清:

  • work_list是在方法中实例化的局部变量
  • t是一个类实例,在method(t = SomeClass())中实例化

更新:问题是t.index_valueUNICODE 的类型而不是int.原因是我从文本文件中反序列化了t的内容,其中index_value的值由单个数字字符表示.在我从文本中提取它之后,我立即将它分配给它index_value,而不是通过int()传递它,我应该做什么,这解决了问题.

我决定保留"有争议的"头衔,尽管它显然是我的错误,而不是Python的,因为有相同问题的人可能会发现它使用这个标题.

python numbers

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

释放Javascript对象使用的内存

我应该自己释放分配的内存,还是有一种垃圾收集器?

可以在JavaScript中使用以下代码吗?

function fillArray()
{
  var c = new Array;
  c.push(3);
  c.push(2);
  return c;
}

var arr = fillArray();
var d = arr.pop()
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript arrays garbage-collection

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

比较几个javabean属性的最佳方法是什么?

我需要比较两个对象(同一个类的实例)中的几十个字段,并在存在差异时进行一些日志记录和更新.元代码看起来像这样:

if (a.getfield1 != b.getfield1)
  log(a.getfield1 is different than b.getfield1)
  b.field1 = a.field1

if (a.getfield2!= b.getfield2)
  log(a.getfield2 is different than b.getfield2)
  b.field2 = a.field2

...

if (a.getfieldn!= b.getfieldn)
  log(a.getfieldn is different than b.getfieldn)
  b.fieldn = a.fieldn
Run Code Online (Sandbox Code Playgroud)

所有比较的代码非常简洁,我想以某种方式使它更紧凑.如果我有一个方法可以作为参数方法调用setter和getter,并为所有字段调用它,那将是很好的,但不幸的是,这是不可能的java.

我提出了三个选项,每个选项都有自己的缺点.

1.使用反射API查找getter和setter
Ugly,如果字段名称发生变化,可能会导致运行时错误

2.将字段更改为public并直接操作它们而不使用getter和setter
丑陋并将该类的实现暴露给外部世界

3.让包含类(实体)进行比较,更新已更改的字段并返回日志消息
实体不应参与业务逻辑

所有字段都是字符串类型,如果需要,我可以修改拥有字段的类的代码.

编辑:该类中有一些字段不得比较.

java reflection

14
推荐指数
1
解决办法
9664
查看次数

134
推荐指数
10
解决办法
9万
查看次数

C++隐式转换

关于我最近回答的一些评论,在C++中可以使用的其他有用的演员表明,我对C++转换的理解是错误的.只是为了澄清问题,请考虑以下代码:

#include <string>

struct A {
    A( const std::string & s ) {}
};

void func( const A & a ) {
}

int main() {
    func( "one" );                  // error
    func( A("two") );           // ok
    func( std::string("three") );   // ok
}
Run Code Online (Sandbox Code Playgroud)

我的断言是第一个函数调用是一个错误,因为没有从const char*到A的转换.有一个从字符串到A的转换,但是使用它会涉及多个转换.我的理解是这是不允许的,这似乎是由g ++ 4.4.0和Comeau编译器证实的.使用Comeau,我收到以下错误:

"ComeauTest.c", line 11: error: no suitable constructor exists 
      to convert from "const char [4]" to "A"
      func( "one" );                    // error
Run Code Online (Sandbox Code Playgroud)

如果您可以指出我错在哪里,无论是在这里还是在原始答案中,最好是参考C++标准,请这样做.

而C++标准的答案似乎是:

最多一个用户定义的转换(构造函数或转换函数)隐式应用于单个值.

感谢Abhay提供报价.

c++

23
推荐指数
4
解决办法
2万
查看次数

当我制作一个可拖动的克隆并将其放入一个droppable时,我无法再拖动它

当我制作一个可拖动的克隆并将其放入一个droppable时,我无法再拖动它.我怎么做?其次,我只能弄清楚如何.append将克隆添加到droppable中.但是它会在任何现有元素之后捕捉到左上角而不是掉落位置.

$(document).ready(function() {
    $("#container").droppable({
        drop: function(event, ui) {
            $(this).append($(ui.draggable).clone());
        }
    });
    $(".product").draggable({
        helper: 'clone'
    });
});
</script>

<div id="container">
</div>
<div id="products">
    <img id="productid_1" src="images/pic1.jpg" class="product" alt="" title="" />
    <img id="productid_2" src="images/pic2.jpg" class="product" alt="" title="" />
    <img id="productid_3" src="images/pic3.jpg" class="product" alt="" title="" />
</div>
Run Code Online (Sandbox Code Playgroud)

jquery drag-and-drop clone jquery-ui-draggable jquery-ui-droppable

55
推荐指数
3
解决办法
9万
查看次数

C结构中的自动字段重新排序以避免填充

我花了几分钟手动重新排序结构中的字段,以减少填充效果[1],这感觉就像几分钟太多.我的直觉是说我的时间可能更好地花在编写Perl脚本上,或者为我做这种优化.

我的问题是这是否也是多余的; 是否已经有一些我不知道的工具,或者我应该能够启用[2]打包结构的一些编译器功能?

由于需要在几种不同的体系结构中进行一致优化,因此使用的任何工具都需要能够考虑不同的结构对齐和指针大小,这个问题更加复杂.

编辑:快速澄清 - 我想要做的是重新排序源代码中的字段,以避免填充,而不是"编译"结构,而不是填充编译.

编辑#2:另一个复杂因素:根据配置,某些数据类型的大小也可能会发生变化.显而易见的是针对不同体系结构的指针和指针差异,但也有浮点类型(16,32或64位,取决于'精确性'),校验和(8位或16位取决于"速度")和一些其他不明显的东西.

[1]所讨论的结构在嵌入式设备上被实例化了数千次,因此结构的每个4字节减少可能意味着该项目的gono-go之间的差异.

[2]可用的编译器是GCC 3.*和4.*,Visual Studio,TCC,ARM ADS 1.2,RVCT 3.*以及其他一些更加模糊的编译器.

c memory-optimization data-structures

11
推荐指数
2
解决办法
4662
查看次数

RegEx来自用户输入是否安全?

我正在开发一个需要接受用户RegEx的应用程序,为此我使用以下代码:

Regex user_searchPattern = new Regex(this.userInput_regEx.Text);
Run Code Online (Sandbox Code Playgroud)

这样做安全吗?
是否需要清理用户输入,如果是,如何?

c# regex user-input

4
推荐指数
1
解决办法
418
查看次数