首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scala:函数组合中的类型不匹配,发现(Int,Int) => Seq[Int]需要?=> Seq[Int]

Scala:函数组合中的类型不匹配,发现(Int,Int) => Seq[Int]需要?=> Seq[Int]
EN

Stack Overflow用户
提问于 2020-06-19 18:28:10
回答 1查看 67关注 0票数 2

我试图在一个脚本中编写两个函数,但遇到了一个我无法解决的类型不匹配问题。以下是示例代码:

代码语言:javascript
运行
复制
def generate(start: Int, end: Int): Seq[Int] = (start until end).toSeq
def restrain(seq: Seq[Int]) = seq.dropWhile(_ < 20).takeWhile(_ < 60)

val com: (Int, Int) => Seq[Int] = (restrain _ compose generate)

通过将其加载到REPL中:

代码语言:javascript
运行
复制
:load test.sc

我得到以下错误:

代码语言:javascript
运行
复制
       val com: (Int, Int) => Seq[Int] = (restrain _ compose generate)
                                                             ^
test.sc:1: error: type mismatch;
        found   : (Int, Int) => Seq[Int]
        required: ? => Seq[Int]

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-19 18:33:31

Function2[Int, Int, Seq[Int]]Function1[(Int, Int), Seq[Int]]类型不同。(generate _)生成前者,而对于此组合,您需要后者。尝试:

代码语言:javascript
运行
复制
restrain _ compose (generate _).tupled
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62468237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档