我试图在Erlang shell中编写一个递归的乐趣,但我一直得到一个未绑定的变量异常:
1> Foo = fun(X) -> Foo(X) end.
* 1: variable 'Foo' is unbound
Run Code Online (Sandbox Code Playgroud)
这可能不言而喻,但我不是想创造一个无限循环!这只是我得到的错误的一个简单例子.
好吧,我有一个gridview,我已经自己定义了列并关闭自动生成但现在我有问题,我无法访问GridView.SelectedRow.DataItem.
因为它现在变成了null,当它在打开自动生成时有一个值.
编辑:我需要的是一种方法来保存行的ID而不向用户显示ID,所以如果有任何方法可以做到这一点?
在我的代码内部深处,如果嵌套在一个类方法内部嵌套,我将某个索引值与某个列表的长度进行比较,以验证我可以访问该索引.代码看起来像这样:
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)
谁能帮我理解这里发生了什么?
进一步澄清:
t = SomeClass()
)中实例化更新:问题是t.index_value
UNICODE 的类型而不是int.原因是我从文本文件中反序列化了t的内容,其中index_value的值由单个数字字符表示.在我从文本中提取它之后,我立即将它分配给它index_value
,而不是通过int()传递它,我应该做什么,这解决了问题.
我决定保留"有争议的"头衔,尽管它显然是我的错误,而不是Python的,因为有相同问题的人可能会发现它使用这个标题.
我应该自己释放分配的内存,还是有一种垃圾收集器?
可以在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)
谢谢
我需要比较两个对象(同一个类的实例)中的几十个字段,并在存在差异时进行一些日志记录和更新.元代码看起来像这样:
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.让包含类(实体)进行比较,更新已更改的字段并返回日志消息
实体不应参与业务逻辑
所有字段都是字符串类型,如果需要,我可以修改拥有字段的类的代码.
编辑:该类中有一些字段不得比较.
所有GWT大师的问题 - 哪个是最好的GWT小部件库?为什么?
根据答案列出:
Инаконец- новоепоколениеоснованноенаJsInterop:
关于我最近回答的一些评论,在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提供报价.
当我制作一个可拖动的克隆并将其放入一个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
我花了几分钟手动重新排序结构中的字段,以减少填充效果[1],这感觉就像几分钟太多.我的直觉是说我的时间可能更好地花在编写Perl脚本上,或者为我做这种优化.
我的问题是这是否也是多余的; 是否已经有一些我不知道的工具,或者我应该能够启用[2]打包结构的一些编译器功能?
由于需要在几种不同的体系结构中进行一致优化,因此使用的任何工具都需要能够考虑不同的结构对齐和指针大小,这个问题更加复杂.
编辑:快速澄清 - 我想要做的是重新排序源代码中的字段,以避免填充,而不是"编译"结构,而不是填充编译.
编辑#2:另一个复杂因素:根据配置,某些数据类型的大小也可能会发生变化.显而易见的是针对不同体系结构的指针和指针差异,但也有浮点类型(16,32或64位,取决于'精确性'),校验和(8位或16位取决于"速度")和一些其他不明显的东西.
[1]所讨论的结构在嵌入式设备上被实例化了数千次,因此结构的每个4字节减少可能意味着该项目的go和no-go之间的差异.
[2]可用的编译器是GCC 3.*和4.*,Visual Studio,TCC,ARM ADS 1.2,RVCT 3.*以及其他一些更加模糊的编译器.
我正在开发一个需要接受用户RegEx的应用程序,为此我使用以下代码:
Regex user_searchPattern = new Regex(this.userInput_regEx.Text);
Run Code Online (Sandbox Code Playgroud)
这样做安全吗?
是否需要清理用户输入,如果是,如何?