我在ideone中尝试以下代码:
var a = [];
a[0] = 0;
a[5] = 5;
a[6] = undefined;
print("contents before popping:");
for(var e in a) print("\ta[", e, "] =", a[e]);
print("a.length =", a.length);
for (var i = 0; i < a.length; i++)
print("\ta.hasOwnProperty(", i, ") =", a.hasOwnProperty(i));
print("popping -->", a.pop());
print("popping -->", a.pop());
print("contents after popping:");
for(var e in a) print("\ta[", e, "] =", a[e]);
print("a.length =", a.length);
for (var i = 0; i < a.length; i++)
print("\ta.hasOwnProperty(", i, ") =", a.hasOwnProperty(i));
Run Code Online (Sandbox Code Playgroud)
输出如下:
contents …Run Code Online (Sandbox Code Playgroud) 为什么assert宏只在调试配置中做一些有用的事情是一种常见的做法?如果它存在以测试不变量并检测编码错误,那么继续在生产软件中进行同样的大繁荣会不会更容易?
我有一些S60的背景和存在__ASSERT_ALWAYS和__ASSERT_DEBUG,后者相当于assert.
我需要从 中提取最后一个之前的单词$(MAKEFILE_LIST)。
到目前为止,我想不出比这种怪物更好的东西了:
LIST := a b c
LAST_WORD_INDEX = $(words $(LIST))
BEFORE_LAST := $(word $(shell echo $(LAST_WORD_INDEX) - 1 | bc),$(LIST))
$(info word before last is $(BEFORE_LAST))
Run Code Online (Sandbox Code Playgroud)
当我运行它时:
word before last is b
make: *** No targets. Stop.
Run Code Online (Sandbox Code Playgroud)
结果是正确的,但是有没有更优雅和理智的方法来实现相同的目标?