假设FireNinja < Ninja我的数据库中有一个对象,使用单表继承存储.后来,我意识到他真的是一个WaterNinja < Ninja.将他改为不同的子类最干净的方法是什么?更好的是,我喜欢创建一个新WaterNinja对象,只需更换FireNinja数据库中的旧对象,保留ID.
编辑
我知道如何WaterNinja从我现有的对象创建新对象FireNinja,我也知道我可以删除旧对象并保存新对象.我想做的是改变现有项目的类.我是通过创建一个新对象并做一些ActiveRecord魔术来替换行,或者通过对对象本身做一些疯狂的事情,或者甚至通过删除它并重新插入相同的ID来做到这一点是问题的一部分.
我有一个简单的设置,如此..
ul { list-style: none; }
#navigation ul li a {
padding: 0px 15px 0px 15px;
line-height: 32px;
float: left;
color: #dedede;
font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)
然后是一个清单.
<div id="navigation">
<ul>
<li><a href="#">etc</a></li>
<li><a href="#">etc</a></li>
<li><a href="#">etc</a></li>
<li><a href="#">etc</a></li>
<li><a href="#">etc</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
意向?列表项应并排呈现在一条直线上.FireFox,IE8,Chrome和Opera中的Hunky dory.
IE7(以及6)也以锯齿状的阶梯式显示它们.有任何想法吗?
我有这段代码:
cerr << client->inventory.getMisc().front()->getName() << endl;
vector<itemPtr>::iterator it;
it = client->inventory.getMisc().begin();
cerr << (*it)->getName() << endl;
Run Code Online (Sandbox Code Playgroud)
让我解释一下:
client是一个tr1::shared_ptr指向一个对象,该对象具有一个名为的成员inventory,该vector<itemPtr>成员可以访问私有成员getMisc().itemPtr是一个typedef tr1::shared_ptr<Item>,并getName()返回一个私有std::string成员Item.
从本质上讲,client->inventory.getMisc()归结为a std::vector,我试图获得第一个元素的迭代器.
问题是第四行是segfaults.显然,迭代器或它指向的shared_ptr都是无效的.我使用第一个cerr语句来测试向量本身是否有效,并且它应该打印,所以我认为它是.
有什么我做错了吗?或者,你们会做什么来调试这个?
我有一段JavaScript代码,预计会为变量设置一个整数值.
有些东西坏了,所以当我尝试做的时候alert(A);,它会回来NaN.isNaN(A);返回true.但是,如果我alert(typeof(A));,它说number.
那么变量怎么可以是一个数字而不是一个数字呢?也许我误解了NaN究竟是什么?
编辑:感谢答案,我看到我错了,因为:
NaN是Number,NaN是指"不是数字",这与"不是类型Number"不同,0/0是一个很好的例子NaN:它仍然是一个数字,但JavaScript(没有其他人)可以说零的实际值除以零.1/0另一方面,返回Infinity,这不是NaN.我正在使用Windows 7并且在我的生活中我无法弄清楚如何在appcfg.py上调用回滚功能.我想知道的是在命令提示符下输入的内容,以便我可以回滚我的应用程序.
我在JavaScript中定义/命名对象和函数有两种不同的方法,在使用之前首先检查名称的存在.问题是,我不知道哪一个更好(从速度和可用性的角度来看),并且不可能在谷歌搜索中使用布尔运算符来弄清楚它.
我经常看到的第一个:
var myNewObject = myNewObject ? myNewObject : function () {
// Code goes here.
};
Run Code Online (Sandbox Code Playgroud)
第二个看起来更简洁,但我只看到一两个地方,所以我不知道它是否有标准甚至名称:
var myNewObject = myNewObject || function() {
// Code goes here.
};
Run Code Online (Sandbox Code Playgroud)
从功能上讲,它们都做同样的事情,它们似乎都适用于我可以测试的每个浏览器.我的问题是 - 这更好,为什么?此外,虽然第一个定义基本上是一个单行条件......第二个定义是什么?
例如:我有一个地图列表,我想从地图的第三个"列"的值创建一个列表...
val l = List(Map(1 -> "test", 2 -> "test", 3 -> "test"), Map(4 -> "test", 5 -> "test", 6 -> "test"))
Run Code Online (Sandbox Code Playgroud) 首先,我是优化mysql的新手.事实是我在我的Web应用程序中(每秒大约400个查询),一个使用GROUP BY我无法避免的查询,这是创建临时表的原因.我的配置是:
max_heap_table_size = 16M
tmp_table_size = 32M
Run Code Online (Sandbox Code Playgroud)
结果:临时表到磁盘百分比+ - 12.5%
然后我根据这篇文章改变了我的设置
max_heap_table_size = 128M
tmp_table_size = 128M
Run Code Online (Sandbox Code Playgroud)
结果:临时表到磁盘百分比+ - 18%
结果没有预料到,不明白为什么.
这是错的tmp_table_size = max_heap_table_size?不应该增加尺寸?
询问
SELECT images, id
FROM classifieds_ads
WHERE parent_category = '1' AND published='1' AND outdated='0'
GROUP BY aux_order
ORDER BY date_lastmodified DESC
LIMIT 0, 100;
Run Code Online (Sandbox Code Playgroud)
说明
| 1 |SIMPLE|classifieds_ads | ref |parent_category, published, combined_parent_oudated_published, oudated | combined_parent_oudated_published | 7 | const,const,const | 67552 | Using where; Using temporary; Using filesort …Run Code Online (Sandbox Code Playgroud) 我想定义一个像MACRO这样的函数.即
#define foo(x)\
#if x>32\
x\
#else\
(2*x)\
#endif
Run Code Online (Sandbox Code Playgroud)
那是,
if x>32, then foo(x) present x
else, foo(x) present (2*x)
Run Code Online (Sandbox Code Playgroud)
但我的海湾合作委员会抱怨:
int a = foo(31);
Run Code Online (Sandbox Code Playgroud)
我认为C预处理器应该正确处理.因为在编译时,它知道x=33.它可以代替foo(33)用(2*33)
javascript ×2
activerecord ×1
c ×1
c++ ×1
css ×1
gcc ×1
mysql ×1
nan ×1
object ×1
optimization ×1
performance ×1
python ×1
rollback ×1
ruby ×1
scala ×1
sql ×1
stdvector ×1
string ×1
temp-tables ×1
typeof ×1