我正在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处理这个问题的方法是什么?
有没有办法用Cucumber和Capybara测试列表的排序.使用javascript在客户端完成排序.
我正在思考以下问题:
Then I should see "first element" and then I should see "second element"
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道如何构建这些步骤.
谢谢您的帮助!
我发现的所有示例都引用了一个名为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
毕竟它被称为.如果对象已经附加,您将受益于对象的先前状态,这反过来将允许对数据库进行优化更新.但是,如果未附加对象,则该方法会强制整个对象变脏.
现在似乎很明显,不是之前.希望它可以帮助某人.
丰富
我有两个Eclipse安装,3.5和3.6.在3.6中,当我打开附加的javadoc时,它使用内部Web浏览器,在3.5中它使用外部Firefox(我更喜欢).
我找不到控制此行为的偏好.请问这个小问题能帮到我吗?
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'附近的语法不正确.
有谁知道我做错了什么?
什么是会话结束或到期时注销用户的最佳方式?
谢谢你的帮助.
我已经读过一个地方,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
循环更好?
我正在尝试编写一个基本的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) 我正在尝试在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)
关于我做错了什么的任何建议都阻止了我的几何图形的绘制?
javascript ×2
asp.net ×1
build ×1
c ×1
c++ ×1
capybara ×1
code-first ×1
compression ×1
cucumber ×1
eclipse ×1
ipad ×1
libraries ×1
logout ×1
lua ×1
makefile ×1
membership ×1
objective-c ×1
opengl-es ×1
pharo ×1
session ×1
smalltalk ×1
sql ×1
sql-server ×1
t-sql ×1