问题列表 - 第24330页

使用Scalaz将选项列表转换为List选项

我想把a List[Option[T]]变成a Option[List[T]].函数的签名类型是

def lo2ol[T](lo: List[Option[T]]): Option[List[T]]
Run Code Online (Sandbox Code Playgroud)

预期的行为是将仅包含Somes 的列表映射到Some包含元素内部元素的列表Some.另一方面,如果输入列表至少有一个None,则预期的行为是返回None.例如:

scala> lo2ol(Some(1) :: Some(2) :: Nil)
res10: Option[List[Int]] = Some(List(1, 2))

scala> lo2ol(Some(1) :: None :: Some(2) :: Nil)
res11: Option[List[Int]] = None

scala> lo2ol(Nil : List[Option[Int]])
res12: Option[List[Int]] = Some(List())
Run Code Online (Sandbox Code Playgroud)

没有scalaz的示例实现将是:

def lo2ol[T](lo: List[Option[T]]): Option[List[T]] = {
  lo.foldRight[Option[List[T]]](Some(Nil)){(o, ol) => (o, ol) match {
    case (Some(x), Some(xs)) => Some(x :: xs);
    case _ => None : Option[List[T]]; 
}}} …
Run Code Online (Sandbox Code Playgroud)

scala option scalaz

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

Django:FloatField还是DecimalField for Currency?

我很好奇哪一个更适合作为货币领域?我会做一些简单的操作,比如差价,新旧价格之间的百分比.我计划在零(即10.50)之后保留两位数,如果这些数字为零,则保留大部分时间,我将隐藏这些数字并将其显示为"10"

ps:货币不是基于美元:)

django django-models

66
推荐指数
4
解决办法
3万
查看次数

在汇编中确定32/64位架构

我正在阅读这个问题,并想知道接受的答案是否也可能是确定架构的一种方法.例如,在asm中我可以将WORD推入堆栈然后检查SP.将新SP与旧SP进行比较:

Diff的4表示32位
Diff的8表示64位

我这个想法是否正确?

x86 assembly x86-64 32bit-64bit

6
推荐指数
1
解决办法
1855
查看次数

Java正则表达式:如何包含' - '

我正在使用此模式并匹配字符串.

String s = "//name:value /name:value";
if (s.matches("(//?\\s*\\w+:\\w+\\s*)+")) {
  // it fits
}
Run Code Online (Sandbox Code Playgroud)

这工作正常.
但是如果我想"/name-or-address:value/name-or-address:value"在第二部分中有一个像' - '这样的字符串,它就不起作用了.
我正在使用\w匹配A-Za-z_,但我怎么能包含-在那里?

java regex

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

有没有办法通过将引用计数存储在受控对象内来提高shared_ptr的效率?

这在我的代码中已经成为一种常见模式,因为当我需要管理一个需要不可复制的对象时,因为它是"重"或B.它是操作系统资源,例如关键部分:

class Resource;

class Implementation : public boost::noncopyable
{
    friend class Resource;
    HANDLE someData;
    Implementation(HANDLE input) : someData(input) {};
    void SomeMethodThatActsOnHandle() {
        //Do stuff
    };
public:
    ~Implementation() { FreeHandle(someData) };
};

class Resource
{
    boost::shared_ptr<Implementation> impl;
public:
    Resource(int argA) explicit {
        HANDLE handle = 
            SomeLegacyCApiThatMakesSomething(argA);
        if (handle == INVALID_HANDLE_VALUE)
            throw SomeTypeOfException();
        impl.reset(new Implementation(handle));
    };
    void SomeMethodThatActsOnTheResource() {
        impl->SomeMethodThatActsOnTheHandle();
    };
};
Run Code Online (Sandbox Code Playgroud)

这样,shared_ptr处理引用计数问题,允许Resource可复制,即使基础句柄只有在对它的所有引用都被销毁后才应该关闭.

但是,似乎我们可以节省分配shared_ptr的引用计数的开销,如果我们可以在Implementation某种程度上移动内部数据,就像boost的侵入式容器那样.

如果这使得过早的优化讨厌唠叨某些人,我实际上同意我不需要这个用于我当前的项目.但我很好奇是否有可能.

c++ boost shared-ptr

3
推荐指数
2
解决办法
899
查看次数

使用Hibernate Annotations映射枚举类型

我的Java模型上有一个枚举类型,我想将其映射到数据库中的表.我正在使用Hibernate Annotations,我不知道该怎么做.由于我搜索的答案相当陈旧,我想知道哪种方式最好?

提前致谢

java orm enums annotations hibernate

36
推荐指数
1
解决办法
4万
查看次数

将inputStream读入JCR 2中的节点属性的正确方法是什么?

在JCR 1中你可以这样做:

final InputStream in = zip.getInputStream(zip.getEntry(zipEntryName));
node.setProperty(JcrConstants.JCR_CONTENT, in);
Run Code Online (Sandbox Code Playgroud)

但是在JCR 2中已经弃用了这个内容,详见http://www.day.com/maven/jsr170/javadocs/jcr-2.0/javax/jcr/Node.html#setProperty%28java.lang.String,%20java.io. InputStream的29%

这说我应该使用node.setProperty(String, Binary)但我没有看到任何方法将我的inputStream变成二进制.任何人都可以指向我的文档或示例代码吗?

java inputstream jcr

4
推荐指数
1
解决办法
1453
查看次数

在Clojure代码中何时何地放置类型注释?

在Clojure代码中何时何地放置类型注释?当性能很重要时.但是,有什么规则可以让你(只有在做Java Interop?时)以及在哪里添加它们(函数定义参数)?

types annotations clojure

15
推荐指数
2
解决办法
4482
查看次数

如何根据另一个哈希的键/值删除[sub]哈希?

让我们假设我有两个哈希.其中一个包含一组数据,只需要保留显示在另一个哈希中的内容.

例如

my %hash1 = ( 
        test1 => { inner1 => { more => "alpha", evenmore => "beta" } },
        test2 => { inner2 => { more => "charlie", somethingelse => "delta" } },
        test3 => { inner9999 => { ohlookmore => "golf", somethingelse => "foxtrot" } }
    );

my %hash2 = (
        major=> { test2 => "inner2",
              test3 => "inner3" }  );
Run Code Online (Sandbox Code Playgroud)

我想要做的是删除hash1中的整个subhash,如果它不作为hash2 {major}中的键/值存在,最好没有模块."innerX"中包含的信息无关紧要,只需要保持不变(除非删除子哈希然后它就会消失).

在上面的示例中,在执行此操作之后,hash1将如下所示:

my %hash1 = ( 
        test2 => { inner2 => { more => "charlie", somethingelse …
Run Code Online (Sandbox Code Playgroud)

perl hash perl-data-structures

4
推荐指数
1
解决办法
3455
查看次数

如何检测php文件所在的目录

我有一个PHP文件,我需要它来检测它的目录.在我的情况下,我希望它返回 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\

我认为这是非常简单的,但如果有什么你不理解只是评论

php

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