另请参阅:文档中的哪些内容表示测试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进行测试)
我正在制作基于浏览器的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) 我需要以各种形式绘制一些数据.目前我正在使用Matplotlib,我对我能够制作的情节非常满意.
这个问题是如何绘制最后一个.数据类似于"距离表",就像这样(只是更大,我的表是128x128,每个元素仍然有3个或更多的数字).
现在,我的数据比距离表更好"结构化"(我的数据不会像按字母顺序排序的距离表那样"随机"变化),因此3D 条形图,或者其中3个,可能是完美的.我的理解是Matplotlib中缺少这样的图表.
我可以使用(彩色)Countor3d像这些在2D或类似imshow,但它是不是真的很好代表的是什么数据(数据有意义只是在我的128点,没有两个点之间的任何东西) .和酒吧的高度比颜色,IMO更可读.
因此问题:
class example:
def exampleMethod(self):
aVar = 'some string'
return aVar
Run Code Online (Sandbox Code Playgroud)
在这个例子中,每次调用example.exampleMethod()后垃圾收集如何工作?一旦方法返回,aVar会被释放吗?
你会选择哪一个?为什么?
我想听听从具有人士的意见,经验与C++应用程序中嵌入网页浏览器引擎.
我应该强调我需要Web浏览器引擎的所有功能,除了渲染,即HTTP客户端,cookie处理,DOM样式HTTP解析器,JavaScript引擎.如何剥离 WebKit或Gecko渲染代码以避免编码和运行时开销?
这是C++项目的嵌入式浏览器的后续内容?
我正处于编程语言的设计阶段,目前正在考虑并发方面.我需要弄清楚一致性模型,即如何用这种语言编程的并发进程处理数据.
有两个重要标准:
我现在的两个候选人一方面是非阻塞软件事务内存,并且在不共享 la Erlang的情况下复制消息传递语义.
我特别担心易用性,所以我将提出我对这两个模型中的每个模型的主要论点.
对于STM,用户必须了解类的成员必须原子地变异并正确地划分原子代码段.这些必须写入,以便它们可以重复不定义的次数,它们可能不执行任何I/O,可能不会调用某些外部函数等.我认为这对于没有经验的程序员来说很容易.
Erlang风格的无共享并发性很有吸引力,但有一个问题:实时进程无法复制它们发送的对象,因为它们无法执行任何内存分配,因此对象必须从一个进程"移动"到另一个进程通过队列.用户必须知道,如果一个实时进程有两个对象的引用,那么如果他将对象发送到另一个进程,那么这两个引用都将被清除.这有点像弱指针,在任何使用点都可能为空,也可能不为空:它可能会令人惊讶.
我倾向于第二个模型,因为它看起来更容易理解,它自然地扩展到分布式系统.
您有什么推荐的吗?
concurrency language-design transactional-memory message-passing
我正在使用命令行编译器构建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)
我想不出为什么会出现这种情况.即使我每次都删除输出文件,重新生成的文件大小仍然以这种方式变化.
有什么想法吗?
我很好奇Windows设备管理器如何获取设备的硬件ID,即使设备尚未加载设备驱动程序.有人知道Windows如何继续这样做吗?
在相关的说明中,我有兴趣支持我们正在编写的软件的语言本地化; 设备和/或驱动程序是否有可能以本地化的方式报告其友好名称和描述?这已经有了常见的做法吗?
谢谢你的时间.
我需要一种方法来使用C#或C++为Windows XP/Vista中的文件夹和文件创建Icon Overlay?任何例子?
谢谢, - 西恩!
我正在用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可以加速它吗?
c++ ×2
python ×2
3d ×1
activerecord ×1
apache-flex ×1
browser ×1
c# ×1
concurrency ×1
css ×1
defined ×1
embedding ×1
filesize ×1
gecko ×1
hardware ×1
icons ×1
localization ×1
matplotlib ×1
mysql ×1
overlay ×1
perl ×1
plot ×1
readdir ×1
ruby ×1
selection ×1
sqlite ×1
webkit ×1
while-loop ×1