【问题标题】:Java stream equivalent in ruby?ruby中的Java流等效?
【发布时间】:2016-11-09 01:59:17
【问题描述】:

我正在尝试将以下 Java selenium 代码转换为 Ruby selenium 代码

  List<String> items = myDriver.findElements(By.xpath("//tbody/tr[1]/td[1]")) //This returns an array
            .stream().map(WebElement::getText)  //Calls stream map 
            .collect(Collectors.toList()); 

我被困在它将数组转换为流并将其与 WebElement getText 映射并转换为列表的部分

这是我尝试过的

 items = driver.find_elements(:xpath, "//tbody/tr[1]/td[1]").map(&:text)

我似乎找不到流和 .collect 的 ruby​​ 等价物?我可以在这里做什么?

【问题讨论】:

  • 您打算使用哪个 HTML 解析器? mapcollect 在 Ruby 中可用。
  • 我不是你说的 HTML 解析器的意思吗?上面给出的 java 代码可以工作,但 ruby​​ 代码不会在 items 数组中存储任何内容。我怎么也可以使用收集? @tadman

标签: java ruby selenium selenium-webdriver


【解决方案1】:

相当于 Java 的 StreamEnumerator。 Ruby 中没有与 collect 等价的东西。 Java's collect is a generalization of folding,Ruby 有两个折叠操作:injecteach_with_object,它们都是 Java 的 collect 的特例。相当于调用stream()创建Stream就是调用each不带块创建Enumerator

但是,如果您想要在 Ruby 中使用 collect 的全部通用性,您必须自己实现它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-22
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多