问题列表 - 第7894页

readdir()的"0"结果如何在一段时间内不是假的?

另请参阅:文档中的哪些内容表示测试readdir的定义性?.(不重复;只是密切相关.)


许多人将下面的循环视为惯用语:

while (defined(my $file = readdir($dir)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

代替:

while (my $file = readdir($dir)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

因为假设文件名只是"0"(零),所以应该使用后一版本,它应该终止循环,而当没有更多文件时它返回'undef'.

但是在过去的某个时刻,这个测试已经defined()停止了必要 - 似乎有一些特殊的案例代码允许后一个版本无论如何都能工作.

我想知道这是如何工作的?

奇怪的是,如果我更换调用readdir()与调用foo()来代替:

sub foo
{
    my ($dir) = @_;
    return readdir($dir);
}

while (my $file = foo($dir)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

那么代码确实做了我期望的事情,并在找到名为"0"的文件时终止循环.

(在MacOS X 10.5.6上使用Perl 5.8.9进行测试)

perl while-loop readdir defined

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

跨浏览器方式隐藏选择显示

我正在制作基于浏览器的JavaScript游戏.因此,在游戏中,用户无需复制/粘贴文本.但是,有许多地方用户需要点击并拖动以在游戏中进行选择.

在游戏中有很多单元格,在内部只是普通的表格单元格,有一个不间断的空间来阻止它们在Firefox中崩溃(我可以用CSS停止在IE,Safari和Opera中的崩溃,但由于某种原因它不起作用火狐所以我使用非破碎空间),具有纯色背景颜色或背景图像.

当玩家在其中拖动选区时,游戏会通过更改背景颜色来突出显示单元格.但是,浏览器还会突出显示非中断空格,并在某些单元格中留下灰色矩形.

此外,浏览器使用不同的方式来确定选择的内容而不是游戏.

例如,在5 x 5平方中,如果用户选择(1,1)到(3,3),则游戏突出显示以下选择:

|   |   |   |   |   |
|   | X | X | X |   |
|   | X | X | X |   |
|   | X | X | X |   |
|   |   |   |   |   |
Run Code Online (Sandbox Code Playgroud)

但浏览器突出显示以下非破坏空格:

|   |   |   |   |   |
|   |   | X | X | X |
| X | X | X | X | X |
| X | X | X | …
Run Code Online (Sandbox Code Playgroud)

css browser selection

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

Python中的条形图(o情节)3D

我需要以各种形式绘制一些数据.目前我正在使用Matplotlib,我对我能够制作的情节非常满意.

这个问题是如何绘制最后一个.数据类似于"距离表",就像这样(只是更大,我的表是128x128,每个元素仍然有3个或更多的数字).

现在,我的数据比距离表更好"结构化"(我的数据不会像按字母顺序排序的距离表那样"随机"变化),因此3D 条形图,或者其中3个,可能是完美的.我的理解是Matplotlib中缺少这样的图表.

我可以使用(彩色)Countor3d像这些在2D或类似imshow,但它是不是真的很好代表的是什么数据(数据有意义只是在我的128点,没有两个点之间的任何东西) .和酒吧的高度比颜色,IMO更可读.

因此问题:

  1. 是否可以在Matplotlib中创建3D条形图?应该清楚的是,我的意思是使用2D域,而不仅仅是一个带有"虚假"3D渲染的2D条形图,用于美学目的
  2. 如果上一个问题的答案是否定的,那么还有其他一些库可以做到吗?我非常喜欢基于Python的东西,但我对其他Linux友好的可能性也很满意
  3. 如果上一个问题的答案为否,那么您对如何显示该数据有任何建议吗?例如,创建一个包含值的表格,叠加到imshow或其他彩色方式?

python 3d plot matplotlib

6
推荐指数
3
解决办法
5003
查看次数

Python中的垃圾收集如何与类方法一起使用?

class example:

    def exampleMethod(self):
        aVar = 'some string'
        return aVar
Run Code Online (Sandbox Code Playgroud)

在这个例子中,每次调用example.exampleMethod()后垃圾收集如何工作?一旦方法返回,aVar会被释放吗?

python garbage-collection

3
推荐指数
2
解决办法
3634
查看次数

WebKit或Gecko - 哪个更适合嵌入C++应用程序?

你会选择哪一个?为什么
我想听听从具有人士的意见,经验与C++应用程序中嵌入网页浏览器引擎.
我应该强调我需要Web浏览器引擎的所有功能,除了渲染,即HTTP客户端,cookie处理,DOM样式HTTP解析器,JavaScript引擎.如何剥离 WebKit或Gecko渲染代码以避免编码和运行时开销?

这是C++项目的嵌入式浏览器的后续内容?

c++ gecko webkit embedding

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

为并发编程语言选择一致性模型

我正处于编程语言的设计阶段,目前正在考虑并发方面.我需要弄清楚一致性模型,即如何用这种语言编程的并发进程处理数据.

有两个重要标准:

  • 我更喜欢易用性而不是性能,只要一致性模型允许良好的缩放,
  • 我不能使用需要阻塞或动态内存分配的一致性模型.

我现在的两个候选人一方面是非阻塞软件事务内存,并且在不共享 la Erlang的情况下复制消息传递语义.

我特别担心易用性,所以我将提出我对这两个模型中的每个模型的主要论点.

对于STM,用户必须了解类的成员必须原子地变异并正确地划分原子代码段.这些必须写入,以便它们可以重复不定义的次数,它们可能不执行任何I/O,可能不会调用某些外部函数等.我认为这对于没有经验的程序员来说很容易.

Erlang风格的无共享并发性很有吸引力,但有一个问题:实时进程无法复制它们发送的对象,因为它们无法执行任何内存分配,因此对象必须从一个进程"移动"到另一个进程通过队列.用户必须知道,如果一个实时进程有两个对象的引用,那么如果他将对象发送到另一个进程,那么这两个引用都将被清除.这有点像弱指针,在任何使用点都可能为空,也可能不为空:它可能会令人惊讶.

我倾向于第二个模型,因为它看起来更容易理解,它自然地扩展到分布式系统.

您有什么推荐的吗?

  • 非阻塞软件事务内存?
  • Erlang风格的并发性与实时约束的困难?
  • 我没有考虑过的其他事情?

concurrency language-design transactional-memory message-passing

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

为什么Flex编译器会在完全相同的源代码的连续编译中生成不同的文件大小?

我正在使用命令行编译器构建SWF mxmlc.exe.编译器将输出文件大小写为stdout的一部分.如果我连续多次运行编译器而不更改实际的源代码,我会看到文件大小一次上下跳动几个字节.

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28443 bytes)

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28442 bytes)

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28440 bytes)

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28442 bytes)
Run Code Online (Sandbox Code Playgroud)

我想不出为什么会出现这种情况.即使我每次都删除输出文件,重新生成的文件大小仍然以这种方式变化.

有什么想法吗?

apache-flex compiler-construction filesize actionscript-3

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

Windows设备管理器和硬件ID

我很好奇Windows设备管理器如何获取设备的硬件ID,即使设备尚未加载设备驱动程序.有人知道Windows如何继续这样做吗?

在相关的说明中,我有兴趣支持我们正在编写的软件的语言本地化; 设备和/或驱动程序是否有可能以本地化的方式报告其友好名称和描述?这已经有了常见的做法吗?

谢谢你的时间.

hardware localization device-driver device-manager

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

外壳图标叠加(C#)

我需要一种方法来使用C#或C++为Windows XP/Vista中的文件夹和文件创建Icon Overlay?任何例子?

谢谢, - 西恩!

c# c++ icons overlay shell-extensions

6
推荐指数
2
解决办法
8206
查看次数

更新db 6000次需要几分钟?

我正在用Ruby和ActiveRecord编写测试程序,它读取的文档长度为6000字.然后我就算了一下

recordWord = Word.find_by_s(word);
if (recordWord.nil?)
  recordWord = Word.new
  recordWord.s = word
end
if recordWord.count.nil?
  recordWord.count = 1
else
  recordWord.count += 1
end
recordWord.save
Run Code Online (Sandbox Code Playgroud)

所以这部分循环了6000次......至少使用sqlite3运行需要几分钟.这是正常的吗?我原以为它可以在几秒钟内运行...... MySQL可以加速它吗?

ruby mysql sqlite activerecord ruby-on-rails

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