为了好玩,我正在玩一个类来轻松缓存功能结果.基本的想法是你可以使用你想要的任何功能 - 虽然你只想将它用于相对昂贵的功能 - 并且可以轻松地将它包装起来使用相对便宜的字典查找,以便以后使用相同的参数运行.真的没什么可说的:
public class AutoCache<TKey, TValue>
{
public AutoCache(Func<TKey, TValue> FunctionToCache)
{
_StoredFunction = FunctionToCache;
_CachedData = new Dictionary<TKey, TValue>();
}
public TValue GetResult(TKey Key)
{
if (!_CachedData.ContainsKey(Key))
_CachedData.Add(Key, _StoredFunction(Key));
return _CachedData[Key];
}
public void InvalidateKey(TKey Key)
{
_CachedData.Remove(Key);
}
public void InvalidateAll()
{
_CachedData.Clear();
}
private Dictionary<TKey, TValue> _CachedData;
private Func<TKey, TValue> _StoredFunction;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,还有一些额外的限制使得它没有那么有用.我们还可以添加一些功能以及实现的其他注意事项.我正在寻找有关如何改善以下任何一点的想法:
作为参考,如果我在实际代码中使用它,我认为最可能的地方是作为业务逻辑层的一部分,我使用此代码将数据访问层中的方法包装起来,只从中提取数据查找表.在这种情况下,相对于字典,数据库行程将是昂贵的,并且几乎总是只有一个"键"值用于查找,因此它是一个很好的匹配.
我有一个查询对象,比如返回十五行.出于所有意图和目的,我无法修改生成查询对象的SQL,但我需要按列对此查询对象进行排序.有没有办法在ColdFusion 7中执行此操作而无需借助外部库?
编辑:我应该添加:我对此查询对象运行查询,并ORDER BY在此查询查询中完成了一个子句.还有另一种方法吗?
我应该使用什么Web服务器(以及为什么)进行Lua Web开发?
我应该如何在Google App Engine中安装(或者我应该在哪里放置和组织)常用的python库.
某些库需要使用setuptools进行安装.我该如何安装这些库.
这是代码:
for(int i = 0; i < personListViewController.peopleCount; i++) {
[NSThread detachNewThreadSelector:@selector(getPerson:) toTarget:self withObject:i];
}
Run Code Online (Sandbox Code Playgroud)
getPerson看起来像这样:
- (void)getPerson:(int)whichPerson { }
Run Code Online (Sandbox Code Playgroud)
当我构建它时,我得到以下结果:警告:传递'detachNewThreadSelector:toTarget:withObject:'的参数3使得整数指针没有强制转换
我想要做的就是通过detachNewThreadSelector将一个int传递给getPerson,我无法弄清楚如何让它除了一个对象指针之外的其他东西.我在这里错过了什么?
我上传了一张照片,它是一个矩形.我如何才能将其调整大小并填充到正方形?
我的意思是当照片水平放置时,它应该在其上方和下方,两个白色区域(用于保持正方形的形状),当它是垂直时,它应该在照片的两侧有两个白色区域.
当我使用PHP时,a使用了这个http://www.verot.net/php_class_upload_samples.htm
看看吧
100x150,保持比例,填充顶部和底部
例
我正在使用Paperclip和RoR.最好的方法是怎样做的?
文档并没有真正谈论这在技术上的作用.
fadeInAnimation.fillMode = kCAFillModeForwards;
Run Code Online (Sandbox Code Playgroud)
我真的没有看到这个的影响.我有一个alpha设置为0.0的视图.然后我淡入它.但是当我取消注释时,没有任何变化.相同的行为.我想了解这个fillMode真正做了什么.
可能的重复:
为什么我们要在 C 中如此频繁地对结构进行 typedef?
C++ 中“struct”和“typedef struct”的区别?
以下类型声明有什么区别?
struct Person
{
int age;
};
typedef struct
{
int age;
}Person;
Run Code Online (Sandbox Code Playgroud)
我明白那个
struct
{
int age;
}Person;
Run Code Online (Sandbox Code Playgroud)
创建一个名为 person 的未命名结构的实例,其中
struct Person
{
int age;
};
Run Code Online (Sandbox Code Playgroud)
声明了一个名为 person 的类型,但不是一个实例。但我仍然不明白 typedef 的作用。
如何Class在Scala中获取实例?在Java中,我可以这样做:
Class<String> stringClass = String.class;
Run Code Online (Sandbox Code Playgroud)
什么是Scala中的等价物?