有了这个代码: function baz() { var x = "foo"; function bar() { debugger; }; bar(); } baz(); 我得到这个意外的结果: 当我更改代码时: function baz() { var x = "foo"; function bar() { x; debugger; }; bar(); } 我得到了预期的结果: 另外,如果在内部函数中有任何eval的调用,我可以像我想要的那样访问我的variables(不pipe我传递给eval是什么)。 同时,在两种情况下,Firefox开发工具都会给出预期的行为。 怎么了Chrome浏览器,debugging器的行为比Firefox不太方便? 我已经观察到这种行为一段时间,直到并包括版本41.0.2272.43testing版(64位)。 Chrome的JavaScript引擎是否可以“平滑”function? 有趣的是,如果我添加了内部函数中引用的第二个variables, xvariables仍然是未定义的。 我明白,在使用交互式debugging器的时候,经常会出现范围和variables定义的怪癖,但是在我看来,根据语言规范,应该是这些怪癖的“最佳”解决scheme。 所以我很好奇,如果这是由于Chrome优化比Firefox更进一步。 而且这些优化是否可以在开发过程中很容易被禁用(也许他们应该在开发工具打开时被禁用)。 另外,我可以用断点和debugger语句来重现这一点。
我已经使用SWT编写了一个Java GUI。 我使用ANT脚本打包应用程序(以下片段)。 <jar destfile="./build/jars/swtgui.jar" filesetmanifest="mergewithoutmain"> <manifest> <attribute name="Main-Class" value="org.swtgui.MainGui" /> <attribute name="Class-Path" value="." /> </manifest> <fileset dir="./build/classes" includes="**/*.class" /> <zipfileset excludes="META-INF/*.SF" src="lib/org.eclipse.swt.win32.win32.x86_3.5.2.v3557f.jar" /> </jar> 这产生了一个单一的jar在Windows上,我只需双击运行我的GUI。 缺点是我不得不明确包装窗口SWT包到我的jar子里。 我希望能够在其他平台(主要是Linux和OS X)上运行我的应用程序。 最简单的方法是创build平台特定的jar包,将相应的SWT文件打包成单独的JAR文件。 有没有更好的方法来做到这一点? 是否可以创build一个可以在多个平台上运行的JAR?
我想知道是否有类似C的解释器。也就是说,在Linuxterminal中,我可以input“python”,然后在该解释器中编码。 (我不确定解释正确的词)。 这对于testing不同的东西是非常有帮助的,我很好奇C是否有类似的东西。虽然我怀疑它。 我唯一能想到的就是C shell。
我有一个可爱的任务,即如何处理大文件被加载到我们的应用程序的脚本编辑器(这就像我们的内部产品快速macros的VBA )。 大多数文件大约300-400 KB这是很好的加载。 但是当他们超过100 MB时,这个过程很难(如你所期望的)。 会发生什么是该文件被读取并推入一个RichTextBox,然后导航 – 不要太担心这个部分。 编写初始代码的开发人员只需使用StreamReader即可 [Reader].ReadToEnd() 这可能需要很长时间才能完成。 我的任务是打破这一点的代码,阅读成块缓冲区,并显示一个进度条,并取消它的选项。 一些假设: 大多数文件将是30-40 MB 文件的内容是文本(不是二进制),有些是Unix格式,有些是DOS。 一旦内容被检索,我们计算出使用了什么终止符。 一旦加载了在richtextbox中渲染所需的时间,就不会有人担心。 这只是文本的初始负载。 现在提问: 我可以简单地使用StreamReader,然后检查Length属性(如ProgressMax),并发出一个读取设置的缓冲区大小,并在while循环WHILST内循环遍历一个后台工作,所以它不会阻止主UI线程? 然后在完成之后将stringbuilder返回到主线程。 内容将会转到一个StringBuilder。 如果长度可用,我可以初始化StringBuilder与stream的大小? 这些(在你的专业意见)好主意? 过去我曾经从Streams中读过一些内容,因为它总是会丢失最后的几个字节,但是如果是这样的话,我会问另外一个问题。
对于那些想要回复的人,我应该使用SSH密钥,请放弃 我试图在bash脚本中使用expect来提供SSH密码。 提供密码的工作,但我不会在SSH会话中,因为我应该,回到bash。 我的脚本: #!/bin/bash read -s PWD /usr/bin/expect <<EOD spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com' expect "password" send "$PWD\n" EOD echo "you're out" 我的脚本的输出: spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com usr@$myhost.example.com's password: you're out 我想我的SSH会话,只有当我退出它回到我的bash脚本。 之所以我期望使用bash,是因为我使用了一个菜单,我可以select连接到哪个单元。 谢谢
在我看来,在C和C ++中进行尾recursion优化非常合适,但在debugging时,我从来没有看到指示此优化的帧堆栈。 这样很好,因为堆栈告诉我recursion有多深。 但是,优化也会很好。 有没有任何C ++编译器做这个优化? 为什么? 为什么不? 我该如何去告诉编译器这样做? 对于MSVC:/ O2或/ Ox 对于GCC:-O2或-O3 如何检查编译器是否在某种情况下做了这个? 对于MSVC,启用PDB输出以便能够跟踪代码,然后检查代码 对于GCC ..? 我仍然会对如何确定某个函数是否由编译器进行优化提供build议(尽pipe我发现Konrad让我承认它) 总是有可能通过无限recursion检查编译器是否做到这一点,并检查是否导致无限循环或堆栈溢出(我用GCC做了这个,发现-O2足够了),但是我想能够检查某个我知道会终止的函数。 我很想有一个简单的方法来检查这:) 经过一些testing,我发现破坏者破坏了这个优化的可能性。 在返回语句开始之前,有时可能需要更改某些variables和临时对象的范围,以确保它们超出范围。 如果在尾部呼叫之后需要运行任何析构函数,则不能进行尾部呼叫优化。
这似乎是一个简单的问题,但我无法find堆栈溢出search或谷歌。 一个types后跟一个_t是什么意思? 如 int_t anInt; 我在C代码中看到了很多与硬件密切相关的东西 – 我不禁想到它们是相关的。
一旦你完成了它们,你应该把所有的对象都设置为null (VB.NET中Nothing ) 我知道,在.NET中,处理实现IDisposable接口的对象的任何实例都是必要的,以释放一些资源,尽pipe对象在处置后仍然可以是某种东西(因此在表单中是isDisposed属性),所以我认为它可以仍然驻留在记忆中,或至less部分存在? 我也知道,当一个对象超出范围时,它将被标记为垃圾收集器的下一个传递的收集(尽pipe这可能需要时间)。 所以考虑到这一点,将它设置null速度释放内存的系统,因为它不需要解决它不在范围内,并且是否有任何不良副作用? MSDN文章从来没有在例子中做到这一点,目前我这样做,因为我不能看到伤害。 不过,我遇到了各种意见,所以任何意见都是有用的。
我在JavaScript中有一个对象: { abc: '…', bca: '…', zzz: '…', xxx: '…', ccc: '…', // … } 我想用for循环来获得它的属性。 我想迭代它的一部分(不是所有的对象属性一次)。 用一个简单的数组,我可以用循环的标准来做到这一点: for (i = 0; i < 100; i++) { … } // first part for (i = 100; i < 300; i++) { … } // second for (i = 300; i < arr.length; i++) { … […]
有什么办法让一个透明的文字切出一个背景效果,像下面的图片,使用CSS? 因为图片replace文字而失去所有珍贵的search引擎优化服务将会很难过。 我首先想到了阴影,但是我什么也找不出来… 图片是网站背景,绝对定位的<img>标签