标签: optional

Perl 正则表达式匹配可选的空白字符

我正在尝试从 XML 文件解析/提取数据并检索必要的数据。

例如:

<about>
    This is an XML file
    that I want to
    extract data from
</about>
<message>Hello, this is a message.</message>
<this>Blah</this>
<that>Blahh</that>
<person> 
    <name>Jack</name>
    <age>27</name>
    <email>jack@gmail.com</email>
</person>
Run Code Online (Sandbox Code Playgroud)

我在获取<about>标签中的内容时遇到问题。

这是我到目前为止:

(<\w*>)[\s*]?([\s*]?.*)(<\/\w*>)/m
Run Code Online (Sandbox Code Playgroud)

我只是想提取标签名称和内容,这就是为什么我在那里有括号。即($tag = $1) =~ s/[<>]// 获取标签名称,$tagcontent = $2 获取标签的内容。我正在使用\s空白字符(空格、制表符、换行符),?因为它可能会出现也可能不会出现*

我正在通过http://www.regexe.com/进行测试,但匹配失败。

任何帮助表示赞赏。提前致谢!

regex perl expression newline optional

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

OptionalInt 是否可重用?

查看 Java8 doc for OptionalInt,似乎OptionalInt无法通过设置新值或清空现有值来重用。此外,JavaDoc 仅展示了通过调用静态方法来初始化 OptionalInt 的两种方法 - 看起来像一个不可变的对象。

真的不能重复使用吗?

想象一个批处理,其中要处理的数据由一个 int 原语组成,它可以是可选的。对于每一行(假设是数百万行)OptionalInt,必须创建一个新对象。目标是避免不必要的对象实例化和额外的垃圾收集。所以我宁愿自己重新实现它并避免使用 Java8 实用程序类OptionalInt

java optional java-8

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

Optional 的返回值

如何StringOptional<String>usingifPresent和 avoid返回值NullPointerException

例子:

public String longestName() {
    Optional<String> longName = someList.stream().reduce((name1, name2) -> name1.length() > name2.length() ? name1 : name2);

    // If I do not want to use following
    // return longName.isPresent() ? longName.get() : "not present";

    // Can I achieve this using longName.ifPresent or longName.orElse("not present");
}
Run Code Online (Sandbox Code Playgroud)

java optional java-8

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

巧妙处理 Spark RDD 中的 Option[T]

我正在使用 Apache Spark 的 Scala API 开发一些代码,并且我正在尝试巧妙地解决RDDs之间包含一些Option[T].

假设我们有以下列表

val rdd: RDD[(A, Option[B])] = // Initialization stuff
Run Code Online (Sandbox Code Playgroud)

我们想应用一个转换rdd来获得以下内容

val transformed: RDD[(B, A)]
Run Code Online (Sandbox Code Playgroud)

对于所有Option[B]评估为 的 s Some[B]。我发现这样做的最好方法是应用以下转换链:

val transformed = 
  rdd.filter(_.isDefined)
     .map { case (a, Some(b)) => (b, a) }
Run Code Online (Sandbox Code Playgroud)

我知道如果我使用的是简单的 Scala,List我可以使用以下collect方法:

val transformed = list.collect {
  case (a, Some(b)) => (b, a)
}
Run Code Online (Sandbox Code Playgroud)

如我的这个SO question 所述。

RDD改用Spark s,我有哪种选择?

scala optional apache-spark

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

了解 Optionals.orElse

我正在尝试学习Java 8 功能 Optional。我对 Optional.orElse 的工作方式感到困惑。这是我尝试过的:

public class OptionalsExample {

    public static void main(String[] args) {
        Name userName = new Name();
        userName.setName("John Doe");
        Optional<Name> optionalName = Optional.ofNullable(userName);
        optionalName.ifPresent(
                (Name value) -> {
                    Optional<String> optionalNameString = Optional.ofNullable(value.getName());
                    optionalNameString.ifPresent(name -> System.err.println("Name is: " + optionalNameString.get()));
                }
        );
    }
    private static void printError() {
        System.err.println("No Name present");
    }
}
Run Code Online (Sandbox Code Playgroud)

我担心的是,如果设置了 name 一切正常,但是当没有设置 name 时,我想执行orElse。我想在评论时做点什么

userName.setName("John Doe");
Run Code Online (Sandbox Code Playgroud)

喜欢打印 No Name Found

我怎样才能做到这一点?

TIA

java null optional notnull java-8

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

Swift:如果不等于 nil,则设置变量

我正在使用 Swift,我想知道如何在 1 行代码中实现这一点:

If a != nil, myVariable = a

else if a == nil, myVariable = b
Run Code Online (Sandbox Code Playgroud)

我需要这样做,以便它适合

var myVariable = a {
    didSet{
        //Do something
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在 1 行中做到这一点,所以我不必在其他地方更改它并触发 didSet{}?

像这样的东西:

if var myVariable = a 
else myVariable = b {
    didSet{
        //Do something
    }
}
Run Code Online (Sandbox Code Playgroud)

或者...

var if a != nil {myVariable = a}
else {myVariable = b} {
    didSet{
        //Do something
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能需要一些时间来理解我的意思,我尽力解释它。

编辑 ---> 编译器说:

nil 合并运算符 '??' 的左侧 具有非可选类型 '[[Bool]]',因此从不使用右侧

和 …

var optional swift

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

为什么我不能有 std::optional&lt;T&gt; 其中 T 是抽象的?

这不起作用:

struct Type {
    virtual bool func(const std::string& val) const noexcept = 0;
}

// in main
optional<Type> = some_function_returning_optional_type();
Run Code Online (Sandbox Code Playgroud)

并失败并显示错误消息:

error: cannot declare field 'std::experimental::fundamentals_v1::_Optional_base<Type, false>::<anonymous union>::_M_payload' to be of abstract type 'Type'
Run Code Online (Sandbox Code Playgroud)

将 更改Type为具有非纯函数有效,但在这种情况下不合适,因为Type在我的代码中不能有 的实例,只有从它继承的类才能存在。

c++ virtual templates abstract optional

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

使用void方法在Optional中映射的惯用方法

我有一个Optional并且想要调用一个带有'内容的函数(如果存在),如果没有则抛出.问题是map不会采用无效方法.

    File file;
    //...
    Optional maybeFile  = Optional.ofNullable(file);
    //..
    maybeFile
        .map(f -> writeTo(f, "stuff")) //Compile error: writeTo() is void
        .orElseThrow(() -> new IllegalStateException("File not set"));
Run Code Online (Sandbox Code Playgroud)

如何在保持writeTo无效的同时实现这一点?

java optional java-8

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

功能标量 - 如何避免在可选映射上进行深度嵌套

我有一组按顺序完成的操作,但如果中间序列返回"null",我想提前中止操作(跳过后续步骤).

我编造了这样其给定的输入参数的功能,执行对Redis的几个操作,如果它存在,会返回一个产品.由于其中一个中间请求可能返回空值,因此完整的操作可能会"失败",并且我希望将之后发生的不必要的步骤短路.

这里的筑巢变得疯狂,我想让它更清晰.是否有适当的"功能"方式来执行此类"if/else"短路?

def getSingleProduct(firstSku: String): Option[Product] = {
    val jedis = pool.getResource
    val sid: Array[Byte] = jedis.get(Keys.sidForSku(firstSku, sectionId, feedId).getBytes)
    Option(sid).flatMap {
      sid: Array[Byte] =>
        Option(jedis.get(Keys.latestVersionForSid(sectionId, feedId, sid))) flatMap {
          version: Array[Byte] =>
            Option(Keys.dataForSid(sectionId, feedId, version, sid)) flatMap {
              getDataKey: Array[Byte] =>
                Option(jedis.get(getDataKey)) flatMap {
                  packedData: Array[Byte] =>
                    val data = doSomeStuffWith(packedData)
                    Option(Product(data, "more interesting things"))
                }
            }
        }
    }
  }
Run Code Online (Sandbox Code Playgroud)

functional-programming scala optional flatmap

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

Java 8如果不存在Optional,如何从方法返回?

我的意思不是返回一个Optional值,我的意思是说一个方法:

public void someMethod() {
    Optional<Obj> obj = someService.getObj();
    if (obj.isPresent()) {
         ....
    } else {
       log.info(xxxx);
       return;
    }
    xxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxx
    other codes
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用Optional.ifPresent方法编写它?我的意思是,避免使用if isPresent东西。

非常感谢。

==更新:

似乎JDK9中的PresentOrElse可以做到这一点,但是JAVA8中有什么方法可以做到这一点?

我不需要此方法返回任何值,但是如果Optional不存在,我想记录一些内容。

java lambda optional

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