scala - def compose[A,B,C](f: B => C, g: A => B): A => C = {f(g(_))} 是不是有效的 scala 声明?
问题描述
我是 scala 的新手,这可能是一个蛋糕步行概念,但试图理解为什么
def compose[A,B,C](f: B => C, g: A => B): A => C = {f(g(_))}
是不是有效的scala declaration?
解决方案
尝试
def compose[A,B,C](f: B => C, g: A => B): A => C = { a: A => f(g(a)) }
下划线作为占位符语法的工作方式不一致,特别是在嵌套函数调用中不像你在这里那样工作。一个好的经验法则是,如果下划线语法出错,请尝试将其扩展为显式 lambda,然后查看它是否有效。
推荐阅读
- react-admin - 如果用户在 react-admin 的列表视图中单击刷新按钮,如何通知后端?
- ios - SwiftUI,如何在不重新创建视图的情况下切换到视图?
- javascript - discord.js 检查特定用户 ID 是否具有特定角色 ID
- sql - SQL (Postgres):ON vs WHERE 以获得更好的性能
- r - 用变量连接字符串
- node.js - 如何在 Nix Docker Tools 映像中包含我的源代码?
- node.js - 使用busboy的Nodejs可恢复文件上传
- django - Django SearchVector postgres searchvector没有保存正确的字符串
- mongodb - 我想根据发生时间查询集合中定义的持续时间之间的持续会议
- sql - 比较列但排除特定对