最近我发现tap可以用来"运用"为新变量赋值; 例如,用于创建和填充数组,如下所示:
array = [].tap { |ary| ary << 5 if something }
Run Code Online (Sandbox Code Playgroud)
此代码将推5入array,如果something是truthy; 否则,array将保持空白.
但我不明白为什么执行这段代码后:
array = [].tap { |ary| ary += [5] if something }
Run Code Online (Sandbox Code Playgroud)
array仍然是空的.谁能帮我?
使用JMockit 0.999.4和JDK6,是否可以调试到部分模拟的类?
考虑以下测试:
@Test
public void testClass() {
SampleClass cls = new SampleClass();
System.out.println(cls.getStaticInt());
cls.setVal(25);
System.out.println(cls.getVal());
}
static class SampleClass {
static int staticInt = 5;
private int val;
{
staticInt = 10;
}
public int getStaticInt() {
System.out.println("Returning static int and adding a line for debugging");
return staticInt;
}
public void setVal(int num) {
System.out.println("Setting val and adding a line for debugging");
this.val = num;
}
public int getVal() {
System.out.println("Returning val and adding a line for debugging");
return …Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试执行以下操作:
struct A {
A(int i, int j){}
}
int startValue = 10;
vector<A> v;
generate_n(back_inserter(v), 10, ???;
Run Code Online (Sandbox Code Playgroud)
我怎样才能"传递"两个参数startValue和functor rand?
谢谢
我想知道:站点地图文件的最大大小是多少?我正在尝试建立一个购物网站,我不知道它是否会支持不断增加动态的大小.我甚至不知道是否正确的方式让搜索引擎找到产品.
我正在使用Rhino模拟来改变NHibernate DAL的行为,这样当代码调用commit事务时,模拟框架会改变行为,从而回滚事务.我这样做的原因是对于集成测试,但我不想向数据库添加任何数据.
这是我测试的方法/类:
public class NHibernateDALSave<T> : IBaseDALSave<T> where T : class
{
protected ISession _session;
protected ISessionFactory _sessionFactory;
public NHibernateDALSave()
{
_sessionFactory = new Configuration().Configure().BuildSessionFactory();
}
public NHibernateDALSave(ISessionFactory sessionFactory)
{
_sessionFactory = sessionFactory;
}
public void OpenSession()
{
if (_sessionFactory == null)
{
_sessionFactory = new Configuration().Configure().BuildSessionFactory();
}
_session = _sessionFactory.OpenSession();
}
public virtual int Save(T objectToSave)
{
this.OpenSession();
using (_session)
{
using (ITransaction tx = _session.BeginTransaction())
{
try
{
Int32 NewId = Convert.ToInt32(_session.Save(objectToSave));
_session.Flush();
tx.Commit();
return NewId;
} …Run Code Online (Sandbox Code Playgroud) 在类名之前,我已经在Rails中看到了很多双冒号的用法.
例如:
require ::File.expand_path('../config/environment', __FILE__)
Run Code Online (Sandbox Code Playgroud)
我知道是什么Module::Class::Constant意思,但是::Class?
在我的"应用程序"目录中,我有一个"logs"目录和一个"config"目录,两者都在版本控制下,都有本地修改过的文件,都被告知要忽略这些文件.但是只有一个忽略工作:
> pwd
website.com/trunk/application/
> svn propget -R svn:ignore
logs - *.log
configs - *.ini
> svn status
M logs/website.log
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢你的任何指示.
我得到的报道称,在一些(并非所有)HTC Desire HD(FRF91,2.2)和HTC EVO 4G(PC36100 | 3.29.651.5,2.2)上,TextToSpeech.OnInitListener.onInit(int)被重复调用(在少数几个空间内超过1500次)秒)在同一个对象上.任何我的其他用户(或与其他Desire HD用户)AFAICT不会发生此问题.
代码是:
TextToSpeech tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
private int mCallCount = 0; // trying to investigate potential infinite loops
@Override
public void onInit(int status) {
if ((mCallCount % 100) == 1) {
// report this
}
mCallCount++;
}
});
Run Code Online (Sandbox Code Playgroud)
任何想法?
编辑:我也试过调用该shutdown()方法(第一次检测到多个侦听器调用)但这似乎没有帮助.
Microsoft不建议使用DirectInput进行键盘和鼠标输入.因此,我编写了一个输入管理器类,它使用SetWindowsHookEx挂钩到WndProc和GetMsg.我认为钩子设置得恰当,但它们看起来是各种问题的原因.
我的WndProc和GetMsg挂钩都不会收到实际WndProc正在接收的任何消息.我的输入管理器永远不会收到它需要的WM_INPUT,WM_ BUTTON,WM_MOUSEWHEEL和WM_KEY*消息.
是什么赋予了?
部分标题:
namespace InputManager
{
class CInputManager
{
HWND m_Window;
HHOOK m_WndProcHook;
HHOOK m_GetMessageHook;
static LRESULT CALLBACK WindowsProcedureHookProcedure(int Code, WPARAM WParameter, LPARAM LParameter);
static LRESULT CALLBACK GetMessageHookProcedure(int Code, WPARAM WParameter, LPARAM LParameter);
static LRESULT CALLBACK MessageHandler(HWND Window, UINT Message, WPARAM wParameter, LPARAM lParameter);
};
}
Run Code Online (Sandbox Code Playgroud)
部分来源:
namespace InputManager
{
bool CInputManager::Initialize(HWND Window)
{
m_Window = Window;
// Hook into the sent messages of the target window to intercept input messages.
m_WndProcHook = SetWindowsHookEx(WH_CALLWNDPROC, &(WindowsProcedureHookProcedure), NULL, GetCurrentThreadId()); …Run Code Online (Sandbox Code Playgroud) 我正在使用pyodbc查询SQL Server数据库
import datetime
import pyodbc
conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
TrustedConnection=Yes")
cursor = conn.cursor()
ratings = ("PG-13", "PG", "G")
st_dt = datetime(2010, 1, 1)
end_dt = datetime(2010, 12, 31)
cursor.execute("""Select title, director, producer From movies
Where rating In ? And release_dt Between ? And ?""",
ratings, str(st_dt), str(end_dt))
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误.元组参数是否需要以不同的方式处理?有没有更好的方法来构建此查询?
('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Line 9:
Incorrect syntax near '@P1'. (170) (SQLExecDirectW);
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
Statement(s) could not be prepared. (8180)")
Run Code Online (Sandbox Code Playgroud)
更新:
我能够使用字符串格式化运算符使这个查询工作,这不是理想的,因为它引入了安全性问题.
import datetime
import …Run Code Online (Sandbox Code Playgroud)