我正在制作MUD或SUD,因为我们可以称之为(单人游戏)导航游戏的唯一方法是键入命令.
def level_01_room_01():
choice = raw_input('>: ')
if choice == 'north':
level_01_room_02()
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果用户使用大写N输入North,则代码将不会感知此命令.如果我真的必须输入,那将是一个很大的混乱:
def level_01_room_01():
choice = raw_input('>: ')
if choice == 'North':
level_01_room_02()
if choice == 'north':
level_01_room_02()
if choice == 'NORTH':
level_01_room_02()
Run Code Online (Sandbox Code Playgroud)
等等.
有什么办法可以解决这个问题,这样玩家可以按照自己的意愿输入这个单词吗?
有记录
-record(something, {id :: integer(),
name :: string(),
email = undefined :: string() | undefined}).
Run Code Online (Sandbox Code Playgroud)
有没有办法获取字段的默认值,在此示例中获取#something.email
默认值为undefined 的事实?
想知道here-string(here-document)和pipe的正确用法是什么.
例如,
a='a,b,c,d'
echo $a | IFS=',' read -ra x
IFS=',' read -ra x <<< $a
Run Code Online (Sandbox Code Playgroud)
两种方法都有效.那么这两个功能有什么区别?
我对"阅读"的另一个问题是:
IFS=',' read x1 x2 x3 x4 <<< $a
Run Code Online (Sandbox Code Playgroud)
不起作用,x1的值为"abc d",而x2,x3,x4没有值
但如果:
IFS=',' read x1 x2 x3 x4 <<< "$a"
Run Code Online (Sandbox Code Playgroud)
我可以得到x1 = a,x2 = b,x3 = c,x4 = d一切都好!
有谁能解释一下?
提前致谢
说我有2种方法:
function A(callback) { ... }
function B(callback) { ... }
Run Code Online (Sandbox Code Playgroud)
我想执行:
function C();
A和B都完成后.
我们通常做的是将函数C放在回调中,如:
A(function() {
B(function() {
C();
});
});
Run Code Online (Sandbox Code Playgroud)
现在如果A和B都需要很长时间,我不希望B在A完成后执行.相反,我想同时启动它们以提高性能.
我在想的是实现类似信号量的东西(当然不是真正的信号量),它会在A和B都完成后触发事件.这样我就可以在活动中打电话给C.
我想知道的是,是否有任何库已实现上述功能?我相信我不是第一个想要这样做的人.
任何帮助表示赞赏.
我正在研究创建一个具有final字段的不可变数据类型(包括在分配给最终成员字段之前构造和填充的数组),并注意到似乎指定了JVM以保证获得的任何其他线程对此对象的引用将看到初始化的字段和数组值(假设没有指针this
在构造函数中发布,请参阅什么是"未完成构造的对象"?以及JVM的隐式内存屏障在链接构造函数时如何表现?).
我很好奇如何在不同步每个访问此对象的情况下实现此目的,或者以其他方式支付一些重要的性能损失.根据我的理解,JVM可以通过执行以下操作来实现此目的:
我想不出更简单或更便宜的方法来消除其他线程看到未初始化的最终字段(或通过最终字段的递归引用)的风险.
由于读取对象的其他线程中的所有读取栅栏,这似乎可能会造成严重的性能损失,但是消除读取栅栏会导致在发出读取之前在另一个处理器中看到对象引用的可能性.栅栏或以其他方式看到对应于新初始化的最终字段的存储器位置的更新.
有谁知道这是如何工作的?这是否会带来显着的性能损失?
我有一个事件处理程序,它设置一个会话变量来改变DOM元素中的内容 - 在本例中是一个表格单元格.
'dblclick td.itemName': function (evt) {
Session.set("editItemName",true);
evt.currentTarget.children[0].focus();
},
<td class="itemName">
{{#unless editItemName}}
{{name}}
{{else}}
<input class="editItemName" type="text" value="{{name}}" style="width:100px;">
{{/unless}}
</td>
Run Code Online (Sandbox Code Playgroud)
挺直的......
但是evt.currentTarget.children不起作用.一旦输入发生了文本,我想让它自动聚焦...流星文档说这是一个DOM对象,所以奇怪的是儿童功能不起作用......
谢谢
切特
通过不幸的情况,我发现我的标准库实现 <math.h>
和<cmath>
(C ++)显然包含具有原型的函数的定义,例如:
double gamma(double x);
Run Code Online (Sandbox Code Playgroud)
虽然我没有在语言标准的任何地方看到它(我可以使用草稿)。
在Mac OS X上使用gcc v4.2.1,该函数的评估结果与tgamma
标准中实际为其指定的名称相同。(参考)
但是在Ubuntu 12.04上的gcc v4.6.3上,该函数的计算结果有所不同。
我根本不理解为什么一个名为函数的函数都可以gamma
编译,但是为什么编译器之间的结果不一样?
这是一个简单的测试程序:
#include<iostream>
#include<sstream>
#include<math.h> // or <cmath>
int main(int argc, char **argv)
{
std::stringstream conversionStream(argv[1]);
double input;
conversionStream >> input;
std::cout << "gamma( " << input << " ) = " << gamma(input) << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译并使用1个参数运行:
$ g++ -o gamma_test gamma_test.cpp
$ ./gamma_test 1.0
gamma( 1 ) = 1
Run Code Online (Sandbox Code Playgroud)
但是Ubuntu gcc v4.6.3的输出为0!
我有一个数据集,第一列有yyyymmdd格式的日期字段.我尝试使用以下方法将这些日期转换为R格式:
yield.usd$Fecha <- as.Date(yield.usd$Fecha, format='%Y%m%d')
Run Code Online (Sandbox Code Playgroud)
输出是:
Error in as.Date.numeric(yield.usd$Fecha, format = "%Y%m%d") : 'origin' must be supplied
Run Code Online (Sandbox Code Playgroud)
然后我尝试了:
yield.dates <- as.Date(yield.usd[1], format='%Y%m%d')
Run Code Online (Sandbox Code Playgroud)
输出如下:
Error in as.Date.default(yield.usd[1], format = "%Y%m%d") : do not know how to convert 'yield.usd[1]' to class “Date”
Run Code Online (Sandbox Code Playgroud)
如何让R读取这些日期?
该dput(head(yield.usd))
如下:
structure(list(Fecha = c(20120815L, 20120815L, 20120815L, 20120815L,
20120815L, 20120815L), Plazo = 1:6, Soberana = c(0.001529738,
0.001558628, 0.001587518, 0.001616408, 0.001645299, 0.001674189
), AAA = c(0.009642716, 0.009671607, 0.009700497, 0.009729387,
0.009758277, 0.009787168), AA. = c(0.017483959, 0.01751285, 0.01754174,
0.01757063, 0.01759952, 0.017628411), …
Run Code Online (Sandbox Code Playgroud) 我有一个主窗体和一个辅助窗体,它们都有一个来自公共数据库的DBAware控件.目前我正在使用ShowModal,但我希望能够使用Modal返回主窗体并导航数据库.
在辅助中,我可以用TEdits替换TDBEdits,并在显示辅助表单时用数据填充它们.没有办法在辅助表单中导航数据库,但是,如果用户可以返回到可以导航的主表单,我将需要在返回辅助表单时重置数据库游标.
我如何判断二级表格刚刚失去焦点?我可以抓住数据库光标位置.
如何判断辅助表单何时再次获得焦点?因此,如果数据库游标在返回之前被移动,我可以重置它.
谢谢ps请不要质疑为什么和/或替代建议.这是一个现有的应用程序,我真的不想要修复数英里的代码.虽然它很糟糕,它已经工作多年,客户希望改变可能.:)
Thumb模式指令是2个字节,ARM模式指令是4个字节.截图是拇指模式指令的反汇编.为什么我看到4字节指令与2byte指令混合?有人能解释一下吗?
先感谢您.