Tag: 惯用

在Scala中find与谓词相匹配的项目

我正在尝试search匹配某个谓词的列表中的某个项目的scala集合。 我不一定需要返回值,只是testing列表是否包含它。 在Java中,我可能会这样做: for ( Object item : collection ) { if ( condition1(item) && condition2(item) ) { return true; } } return false; 在Groovy中,我可以这样做: return collection.find { condition1(it) && condition2(it) } != null 斯卡拉这样做的惯用方法是什么? 我当然可以将Java循环风格转换为Scala,但我觉得有一个更实用的方法来实现这一点。

什么时候使用关联types与genericstypes是否合适?

在这个问题中 ,出现了一个问题,可以通过改变尝试将genericstypes参数用于关联types来解决。 这促使了 “为什么这里的关联types更合适? ,这让我想知道更多。 引入关联types的RFC说: 本RFC通过以下方式阐明特征匹配: 将所有特征types参数作为inputtypes进行处理 提供关联types,即输出types 。 RFC使用graphics结构作为激励的例子,这也在文档中使用 ,但是我承认并不完全理解关联types版本相对于types参数化版本的好处。 首要的是distance方法不需要关心Edgetypes。 这是很好的,但似乎有点关联types的原因有点浅。 我发现关联types在实践中非常直观,但是我发现自己在决定何时何地应该在自己的API中使用它们时感到困难。 在编写代码的时候,我应该什么时候select一个genericstypes参数的关联types,什么时候应该做相反的事情?

什么时候应该使用std :: size_t?

我只是想知道应该使用std::size_t循环和东西而不是int ? 例如: #include <cstdint> int main() { for (std::size_t i = 0; i < 10; ++i) { // std::size_t OK here? Or should I use, say, unsigned int instead? } } 一般来说,关于何时使用std::size_t的最佳做法是什么?

使用CUDA运行时API检查错误的规范方法是什么?

通过对CUDA问题和CUDA标记wiki的回答和评论,我发现通常会build议每个API调用的返回状态都应该检查错误。 API文档包含像cudaGetLastError , cudaPeekAtLastError和cudaGetErrorString这样的函数,但是将这些函数放在一起可以可靠地捕获和报告错误而不需要大量额外代码的最佳方法是什么?

我怎样才能初始化一个静态的地图?

你将如何初始化Java中的静态地图? 方法一:静态初始化 方法二:实例初始化(匿名子类)还是其他一些方法? 各有什么优点和缺点? 这里是一个例子说明两种方法: import java.util.HashMap; import java.util.Map; public class Test { private static final Map<Integer, String> myMap = new HashMap<Integer, String>(); static { myMap.put(1, "one"); myMap.put(2, "two"); } private static final Map<Integer, String> myMap2 = new HashMap<Integer, String>(){ { put(1, "one"); put(2, "two"); } }; }