我是(非常)新的Ruby,今天就开始了.
我刚刚从我的系统的Ruby 1.8安装转移到Ruby 1.9,从源代码编译.在这样做的过程中,伊尔布的情况变得更糟.它以非常不友好的方式对非字母数字控制键做出反应:
UP键打印:^ [[A.
DOWN键打印:^ [[B.
DELETE键打印:^ [[3~
...等等.这对我来说的主要结果是我无法访问以前发出的命令.标签完成也不起作用; 虽然这对Wirble来说似乎都不是问题 - 当我删除〜/ .irbrc时也是如此.
我正在使用:
有任何想法吗?:(
鉴于XML
<blockquote>
<attribution>foo</attribution>
<para>bar</para>
</blockquote>
Run Code Online (Sandbox Code Playgroud)
我有XSL模板
<xsl:template match="dbk:blockquote">
<blockquote>
<xsl:apply-templates select="*[not(dbk:attribution)]" />
<xsl:apply-templates select="dbk:attribution" />
</blockquote>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
第一个apply-templates应该选择dbk:blockquote不属于类型的所有子元素dbk:attribution.(这是将归因移到底部的必要条件.)
但是,它实际上匹配每个节点.为什么?
参考完全正确性的while规则,WP似乎告诉我,只要找到严格减少的循环变量就足以证明终止.我不能接受,要么是因为我遗漏了某些东西,要么是规则错了.考虑
int i = 1000;
while(true) i--;
Run Code Online (Sandbox Code Playgroud)
其中变量的值i是严格减少的循环变量,但循环当然不会终止.
当然规则需要有一个额外的前提条件,例如i <0→¬B(其中B是公理模式中的循环条件),这样循环条件最终"捕获"循环变量并退出.
还是我错过了什么?
这个:
$http({method: 'GET', url: '/some/url/returning/json').
success(function(data, status, headers, config) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
表明Angular给了我一个JavaScript对象作为我的success处理程序的第一个参数.据推测,它试图通过嗅探响应的内容类型来变得聪明.
这是不受欢迎的行为.我如何告诉Angular将响应体作为字符串给我?
我有一个“hello world”Windows桌面应用程序,其来源来自这个官方演练。
当我从适用于 Linux 的 Windows 子系统运行此程序时,我得到了预期的行为:shell 阻塞,等待进程退出,并且 shell 提示符仅在进程退出后重新出现。然后我可以检查进程退出代码(此处设置为 3,通过从 中返回wWinMain):
jim@LAPTOP-SMUS1UJN:/mnt/c/Users/james/source/repos/DesktopApp/x64/Release$ ./DesktopApp.exe # blocks until I close the window ...
jim@LAPTOP-SMUS1UJN:/mnt/c/Users/james/source/repos/DesktopApp/x64/Release$ echo $?
3
Run Code Online (Sandbox Code Playgroud)
但是,这不是我从命令提示符或 PowerShell 运行程序时得到的行为。在这里,进程启动了,但是 shell 声称进程立即退出,立即给我一个新的提示!但该进程显然没有退出,因为它创建的窗口仍然存在,我可以与它交互。
在这两种情况下(适用于 Linux 的 Windows 子系统和 PowerShell),进程 stdout 不会打印到终端。(使用 进行验证std::cout << "test",它不会向终端打印任何内容。)
就好像原始进程生成了一个守护进程来运行 win32 的东西。但我不认为这是正在发生的事情,因为 Linux 的 Windows 子系统至少会阻塞直到退出。
当我使用 Visual Studio 创建“控制台”C++ 应用程序时,它的行为符合预期。这种奇怪的提前退出且无输出的行为只发生在我的“桌面”win32 程序中。
那么,为什么命令提示符或 PowerShell 声称进程立即退出呢?它的标准输出在哪里?
我正在查看JavaScript中plus(a + b)运算符的MDN文档.这似乎是操作上的所有组合定义number,string和bool论据.从实验中,它也定义在数组,对象,null,闭包......
问题一:是有为其加运算值的任意组合没有定义的,即这些参数不在域+功能?(在操作上,"未定义"基本上意味着将抛出异常,或者如果+应用于这些参数,程序将停止并出现错误.)
用于回答其他"算术运算符"的等效问题的奖励点(这似乎远远超过算术......).
假设我有一个功能:
func foo() (bool, string) { ... }
Run Code Online (Sandbox Code Playgroud)
然后我希望声明两个变量,b并s使用函数调用返回的值进行初始化foo().我知道我可以使用省略类型注释的"速记"语法来做到这一点:
b, s := foo();
Run Code Online (Sandbox Code Playgroud)
但是,我不想使用这种速记语法.我希望使用var带有变量名和期望类型的语法.我试过这个:
var b bool, s string = foo();
Run Code Online (Sandbox Code Playgroud)
但是,这给了我一个语法错误.这样做的正确方法是什么?
作为学习PHP的一部分,我试图将其语义形式化.简化此任务的一个好方法是尽可能多地理解其语法作为更多基本表达式的"语法糖".这样,我可以用更少的语法形式来定义语义.
PHP似乎有大量可以去糖的语法.一些例子:
if/endif和其他"替代语法"desugar if { ... }等
for (expr1; expr2; expr3) { statements; }des to to to expr1; while (expr2) { statements; expr3; }.
我认为以下是真的:$foo只是意味着${'foo'}.也就是说,通过名称引用变量只是通过将表达式计算为字符串而更通用的变量查找的实例.
我认为这:
<p>foo</p>
<?php echo 5; ?>
<p>bar</p>
Run Code Online (Sandbox Code Playgroud)
对此的厌恶:
echo "<p>foo</p>\n";
echo 5;
echo "<p>bar</p>\n";
Run Code Online (Sandbox Code Playgroud)
或者一般来说,?>blah<?php只是意味着echo 'blah';.
当然还有很多很多这样的案例.我想提出一份全面且确认准确的清单.(我的任何一个例子都可能不准确,所以请纠正我!)
addition ×1
angularjs ×1
c++ ×1
content-type ×1
go ×1
http ×1
irb ×1
javascript ×1
logic ×1
operators ×1
php ×1
powershell ×1
return-type ×1
ruby ×1
stdout ×1
syntax ×1
variant ×1
verification ×1
winapi ×1
windows ×1
xpath ×1
xslt ×1