问题列表 - 第41191页

在smalltalk中对消息参数强制执行某些值的最佳方法是什么?

我正在Pharo做一个简单的棋盘游戏,我在我的棋盘上有一个方法可以在一个单元格中添加对象.单元格只是对象上的点的字典.

作为该方法的一部分,我想强制一个Point应该大于零,但小于板的宽度和高度,换句话说,它应该实际上在板上.做这个的最好方式是什么?

我目前的尝试看起来像这样:

at: aPoint put: aCell

((((aPoint x > self numberOfRows) 
    or: [aPoint x <= 0]) 
    or: [aPoint y > self numberOfColumns ]) 
    or: [aPoint y <= 0]) 
    ifTrue: [ self error:'The point must be inside the grid.' ].

self cells at: aPoint put: aCell .
Run Code Online (Sandbox Code Playgroud)

所有那些parens的lisp-y!但是我不能在or:没有关闭每个表达式的情况下使用短路,因此它评估为布尔值而不是块(或作为or:or:or:or:消息).我可以使用二元运算符|代替和for-go短路,但这似乎不对.

那么正确的Smalltalk-ish处理这个问题的方法是什么?

smalltalk pharo

3
推荐指数
1
解决办法
206
查看次数

用Cucumber和Capybara进行测试分类

有没有办法用Cucumber和Capybara测试列表的排序.使用javascript在客户端完成排序.

我正在思考以下问题:

Then I should see "first element" and then I should see "second element"
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道如何构建这些步骤.

谢谢您的帮助!

javascript ruby-on-rails cucumber capybara

3
推荐指数
1
解决办法
2007
查看次数

强制EF 4.1 Code First将附加实体视为已修改

我发现的所有示例都引用了一个名为ObjectContext的类,它似乎不存在于CTP5中.我必须强调,CTP5是我第一次接触实体框架.

我有一个已连接到我的DbContext的断开连接的POCO.SaveChanges不会接受更改,我如何告诉我的上下文更新该实体?

_context.Users.Attach(user);
// The user has been replaced.
_context.SaveChanges();
// The change is not saved.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

更新12/01/2011 对于大多数人来说可能是显而易见的,但作为EF的第一次使用者,我没有想到附加已经附加的对象会清除之前的状态.这给我带来了很多痛苦.但是我想以一种非常通用的方式使用Repository模式,这种方式不关心对象是否已经附加或者是作为ASP.NET MVC绑定的结果而新创建的.所以我需要一种UpdateUser方法,我在下面附上了它.

    public User UpdateUser(User user) {
        if (_context.Entry(user).State == EntityState.Detached) {
            _context.Users.Attach(user);
            _context.Entry(user).State = EntityState.Modified;
        }
        return user;
    }
Run Code Online (Sandbox Code Playgroud)

该方法显然假设对象以某种方式存在于数据存储中,UpdateUser毕竟它被称为.如果对象已经附加,您将受益于对象的先前状态,这反过来将允许对数据库进行优化更新.但是,如果未附加对象,则该方法会强制整个对象变脏.

现在似乎很明显,不是之前.希望它可以帮助某人.

丰富

entity-framework code-first

21
推荐指数
1
解决办法
6547
查看次数

如何在外部浏览器中打开附加的javadoc

我有两个Eclipse安装,3.5和3.6.在3.6中,当我打开附加的javadoc时,它使用内部Web浏览器,在3.5中它使用外部Firefox(我更喜欢).

我找不到控制此行为的偏好.请问这个小问题能帮到我吗?

eclipse

14
推荐指数
1
解决办法
5103
查看次数

在查询中使用CTE(公用表表达式)

with cte as
(
select rowid from batchinfo where datapath like '%thc%'
)

select * from qvalues where rowid in cte
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息102,级别15,状态1,行6'cte'附近的语法不正确.

有谁知道我做错了什么?

sql t-sql sql-server

3
推荐指数
1
解决办法
422
查看次数

如何在会话超时或结束时注销用户

什么是会话结束或到期时注销用户的最佳方式?

谢谢你的帮助.

membership asp.net session logout

12
推荐指数
1
解决办法
2万
查看次数

在那种情况下更好 - "for"或"while"

我已经读过一个地方,for当你迭代某种数组/序列/列表/你调用它时,你应该使用一个循环,当你的循环需要在某个条件下停止时,我应该使用while循环.

那么,如果我有这样的东西怎么办?

int len = 0;

for(; s[len] != '\n'; ++len) {
    // some processing

    if (someCondition) {
        return len;
    }
} 

// if done iterating, return len
return len;
Run Code Online (Sandbox Code Playgroud)

for在这种情况下可以使用循环还是while循环更好?

c c++

0
推荐指数
1
解决办法
206
查看次数

Lua有哪些很棒但鲜为人知的图书馆?

关于Lua的一个共同声明是它没有附带电池; 意味着它缺少很多额外的库.

我觉得有很多Lua库的外面更多的正在开发的所有时间,但它很可能人们不知道很多人因为Lua的社区一般是约完成工作非常务实,不通过自我推销浪费了很多时间.

那么更多人应该了解的一些伟大的Lua库是什么?

lua libraries

11
推荐指数
1
解决办法
2958
查看次数

Makefile结合js文件并制作压缩版本

我正在尝试编写一个基本的makefile,它将多个js文件合并为一个,然后执行相同但压缩它们.

到目前为止,我有一个可以使压缩版本正常的.

# Set the source directory
srcdir = src/

# Create the list of modules
modules =   ${srcdir}core.js\
            ${srcdir}sizzle.js\
            ${srcdir}json2.js\
            ${srcdir}ajax.js\
            ${srcdir}attribute.js\
            ${srcdir}content.js\
            ${srcdir}cookie.js\
            ${srcdir}css.js\
            ${srcdir}event.js\
            ${srcdir}json.js\
            ${srcdir}location.js\
            ${srcdir}opacity.js\
            ${srcdir}ready.js\
            ${srcdir}size.js\
            ${srcdir}init.js

# Compress all of the modules into spark.js
spark.js: ${modules}
    java -jar yuicompressor.jar -o $@ $^
Run Code Online (Sandbox Code Playgroud)

有谁知道如何添加一个名为spark-dev.js的未压缩版本?我一直在尝试使用猫,但我没有走得太远.这是我写过的第一个makefile.

编辑 我用猫尝试了这个代码

spark-dev.js: ${modules}
    cat $@ $^
Run Code Online (Sandbox Code Playgroud)

javascript compression makefile build

11
推荐指数
1
解决办法
5122
查看次数

如何将glDrawElements与GL_UNSIGNED_INT一起用于索引?

我正在尝试在iPad上绘制超过65536个顶点的3d对象,但无法弄清楚我做错了什么.我使用GL_UNSIGNED_SHORT的原始模型运行得很好,但现在使用GL_UNSIGNED_INT,我无法使用glDrawElements命令显示任何内容.这就像渲染器完全忽略了我的glDrawElements线.我正在引用的渲染循环部分如下:

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);

glVertexPointer(3, GL_FLOAT, sizeof(assemblyObj->vertices[0])*6, &assemblyObj->vertices[0]);
glNormalPointer(GL_FLOAT, sizeof(assemblyObj->vertices[0])*6, &assemblyObj->vertices[0]);

for (int i = 0; i < assemblyObj->numObjects; i++)
{
     glDrawElements(GL_TRIANGLES, assemblyObj->partList[i].faceArray.size(), GL_UNSIGNED_INT, &assemblyObj->partList[i].faceArray[0]);
}

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
Run Code Online (Sandbox Code Playgroud)

顶点定义为:

vector<float> vertices;
Run Code Online (Sandbox Code Playgroud)

每个faceArray定义为:

vector<UInt32> faceArray;
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何建议都阻止了我的几何图形的绘制?

opengl-es objective-c objective-c++ ipad

7
推荐指数
1
解决办法
6446
查看次数