Scala 从三个不同的选项[列表[MyType]]中生成一个选项[列表[MyType]]
我有 其中每个选项都是[List[MyType]] 我想将它们全部“合并”在一起(这是一个折叠吗?),这样我就只有一个选项[List[MyType]] 谢谢一种方法是:Scala 从三个不同的选项[列表[MyType]]中生成一个选项[列表[MyType]],scala,Scala,我有 其中每个选项都是[List[MyType]] 我想将它们全部“合并”在一起(这是一个折叠吗?),这样我就只有一个选项[List[MyType]] 谢谢一种方法是: def searchListProducts1 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchDescription) def searchListProducts2 = models.Products.IndivProd
def searchListProducts1 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchDescription)
def searchListProducts2 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchName)
def searchListProducts3 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchIngredients)
另一种(我认为更好)方式:
但正如LimboSoup所说,我将放弃选项,因为它看起来是多余的,您可以很容易地得到一个空列表,而不是将其包装在一个选项中。一种方法是:
def searchListProducts1 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchDescription)
def searchListProducts2 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchName)
def searchListProducts3 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchIngredients)
另一种(我认为更好)方式:
但正如LimboSoup所说,我将放弃选项,因为它看起来是多余的,您可以很容易地得到一个空列表,而不是将其包装在一个选项中。一种方法是:
def searchListProducts1 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchDescription)
def searchListProducts2 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchName)
def searchListProducts3 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchIngredients)
另一种(我认为更好)方式:
但正如LimboSoup所说,我将放弃选项,因为它看起来是多余的,您可以很容易地得到一个空列表,而不是将其包装在一个选项中。一种方法是:
def searchListProducts1 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchDescription)
def searchListProducts2 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchName)
def searchListProducts3 = models.Products.IndivProduct.getProductsFromJsObjectList(productsTextSearchIngredients)
另一种(我认为更好)方式:
但是正如LimboSoup所说,我会放弃选项,因为它看起来是多余的,你可以很容易地得到一个空的列表,而不是把它包装在一个选项中。正如其他人所建议的,选项[list[T]
是多余的,除非你有很好的理由选择无而不是无。只需丢失选项
,然后执行以下操作:
val listed = List(searchListProducts1, searchListProducts2, searchListProducts3)
listed.map(_.getOrElse(List())).reduce(_ ++ _)
或
如果出于某种原因确实要保留选项
包装器:
List(searchListProducts1, searchListProducts2, searchListProducts3).flatten
或
为什么奇怪的双重变平?因为首先将列表
包装成选项
很奇怪。正如其他人所建议的那样,选项[List[T]
是多余的,除非你有很好的理由选择无
而不是无
。只需丢失选项
,然后执行以下操作:
val listed = List(searchListProducts1, searchListProducts2, searchListProducts3)
listed.map(_.getOrElse(List())).reduce(_ ++ _)
或
如果出于某种原因确实要保留选项
包装器:
List(searchListProducts1, searchListProducts2, searchListProducts3).flatten
或
为什么奇怪的双重变平?因为首先将列表
包装成选项
很奇怪。正如其他人所建议的那样,选项[List[T]
是多余的,除非你有很好的理由选择无
而不是无
。只需丢失选项
,然后执行以下操作:
val listed = List(searchListProducts1, searchListProducts2, searchListProducts3)
listed.map(_.getOrElse(List())).reduce(_ ++ _)
或
如果出于某种原因确实要保留选项
包装器:
List(searchListProducts1, searchListProducts2, searchListProducts3).flatten
或
为什么奇怪的双重变平?因为首先将列表
包装成选项
很奇怪。正如其他人所建议的那样,选项[List[T]
是多余的,除非你有很好的理由选择无
而不是无
。只需丢失选项
,然后执行以下操作:
val listed = List(searchListProducts1, searchListProducts2, searchListProducts3)
listed.map(_.getOrElse(List())).reduce(_ ++ _)
或
如果出于某种原因确实要保留选项
包装器:
List(searchListProducts1, searchListProducts2, searchListProducts3).flatten
或
为什么奇怪的双重变平?因为首先将列表
包装到选项
中很奇怪。在选项
中包装列表
似乎是多余的。。有什么理由让无
而不仅仅是一个空的列表
?我想没有。除了我可以在None上进行大小写匹配之外..您可以为空列表匹配Nil
。在选项中包装list
似乎是多余的。。有什么理由让无
而不仅仅是一个空的列表
?我想没有。除了我可以在None上进行大小写匹配之外..您可以为空列表匹配Nil
。在选项中包装list
似乎是多余的。。有什么理由让无
而不仅仅是一个空的列表
?我想没有。除了我可以在None上进行大小写匹配之外..您可以为空列表匹配Nil
。在选项中包装list
似乎是多余的。。有什么理由让无
而不仅仅是一个空的列表
?我想没有。除了我可以在None上进行大小写匹配..您可以在空列表中匹配Nil
。