Scala 方法调用中的大括号[重复]

2023-12-09

在 Scala 中,我们可以:

println { “你好,世界!” }

摘自《Scala 编程》一书:

这种用花括号代替圆括号的能力的目的 传入一个参数是为了让客户端程序员能够编写函数 大括号之间的文字。这可以使方法调用感觉更像 控制抽象。

这句话是什么意思呢?


这是语法糖,只是为了外观和感觉。当函数采用函数作为参数时,如

def doWith[A, B](todo: A => B): B = ???

你通常必须这样称呼它

doWith( input => ... )
// or even
doWith({ input => ... })

在scala中允许用花括号替换括号,所以

doWith { input =>
  ...
}

具有类似控制结构的外观和感觉

if (...) {
  ...
}

恕我直言,这使得调用“map”或“collect”等高阶函数更具可读性:

someCollection.map { elem =>
  ...
  ...
}

这本质上是相同的

someCollection.map({ elem =>
  ...
  ...
})

字符较少。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 方法调用中的大括号[重复] 的相关文章

随机推荐

  • 将 DispatcherTimer 与 Windows 服务结合使用

    为什么我的 DispatcherTimer 不能与 Windows Service 一起使用 我想使用 DispatcherTimer 来检查 Windows 服务许可证背后的目的 public OIMService InitializeC
  • 如何在 JavaFX 中的 Accordion 中的 TitledPanes 之间添加填充

    我想在之间添加填充TitledPanes in an Accordion 间距为Accordion 问题是 当一个TitledPane被扩展了 下一个的外观和感觉TitledPane被打破 TitledPanes 未展开 One Title
  • 连接表时出现问题,需要在分组之前对连接表进行排序

    我有一个场景 在纸上看起来很简单 但在实践中我很难按预期工作 我有两个表 仅显示相关列 Thread ThreadID Post PostID ThreadID Posted Datetime 现在 我想做的是将 Thread 和 Post
  • 正则表达式与短语中的子词不匹配

    我的程序显示匹配结果 但我想将结果排序为最佳匹配 第二最佳匹配等 我的文本文件包含以下行 red or yellow red yellow 所以如果我搜索 red or yellow 我得到以下结果 red or yellow red ye
  • Springboot TomcatEmbeddedServletContainer KeepAliveTimeout 不起作用

    我已将 Spring Boot 嵌入式 tomcat 服务器中的保持活动超时设置为 30 秒 所以我在下面的Application java中使用 Bean public EmbeddedServletContainerFactory ge
  • 无法在 DLL“opengl32.dll”中找到名为“glBindFramebuffer”的入口点。在 MonoGame 3.0 中

    最近我在我的笔记本电脑上安装了 MonoGame 3 0 我从项目模板中获取了一个新的 MonoGame Windows OpenGL 项目 并尝试运行它 但我得到了这个异常 Unable to find an entry point na
  • psql:显示带有 \df 且*不*包含特定模式的函数

    因为我将 dblink 扩展安装到 默认 公共模式中 df将显示所有 dblink 相关函数 我只想查看自定义功能 如何查看不包含文本 dblink 的函数 到目前为止我尝试过的 df dblink df dblink df dblink
  • .load 与 .on(“加载”)

    我正在 div 中加载一个 php 页面 该页面采用已发布的变量来显示正确的内容 它的工作原理是这样的 mainArea load page php folder a fadeIn passes vars but all my jquery
  • Qt 通过 QNetworkAccessManager 扫描 Wi-Fi

    欢迎 我在扫描 Wi Fi 以获得 Wi Fi 中所有可用的连接时遇到问题 到目前为止我已经写了这段代码 include
  • java.util.Iterator 但无法导入 java.util.Iterator

    鉴于此代码 import java util Iterator private static List
  • Matlab打印板

    我是 Matlab 新手 有没有办法使用printmat打印2个字的标题 结果示例如下 Title One Title Two Title Three 11 22 33 22 33 44 这是我当前尝试修改的代码 matA 11 22 33
  • 如何在canvas、html5中旋转形状?

    我试图用这个旋转一条线 window onload function var canvas document getElementById foo var context canvas getContext 2d context moveT
  • 使用 Mockito 时模拟和监视有什么区别?

    使用 Mockito 间谍的用例是什么 在我看来 每个间谍用例都可以使用 callRealMethod 进行模拟处理 我看到的一个区别是 如果您希望大多数方法调用都是真实的 那么使用模拟与间谍可以节省一些代码行 是这样还是我错过了更大的图景
  • 如何在 MySQL 中使用“WITH”子句?

    我正在将所有 SQL Server 查询转换为 MySQL 并且我的查询已WITH他们都失败了 这是一个例子 WITH t1 AS SELECT article userinfo category FROM question INNER J
  • 遍历 NSData 并抓取块

    有什么方法可以迭代 NSData 以便我可以根据特定的字节模式拆分它 我需要将某些块分解成一个数组以便以后查找 拆分一个NSData在某些分隔符上 您可以使用以下命令搜索分隔符rangeOfData options range 然后使用分割
  • d3.IE 中的选择类型检查

    如何检查给定对象是否是d3选择 下面的代码打印true在 Chrome 和 Firefox 中 但是false在 Internet Explorer 中 console log d3 select document body instanc
  • 正确的安装顺序 VS 2012 Express 和 SQL Server 2012 Express

    在未安装任何 SQL Server 版本的 Win7 64 系统上 我安装了 Visual Studio 2012 for Web 我以为它会给我安装 SQL Server 2012 Express 的选项 但事实并非如此 现在我想在安装完
  • 德塔云平台无法使用FastAPI上传文件

    当我通过运行此代码时uvicorn main app一切正常 但是当我使用 Deta 运行它时 我得到Internal Server Error并且只有GET端点工作 POST一个甚至没有像应该的那样被调用 你能帮我么 提前致谢 impor
  • 本地数据库插入未存储

    这可能是我的一个愚蠢的错误 但我似乎无法理解它 我创建了一个新的空 C Windows 窗体应用程序 我添加了一个数据库 基于数据集 并将文件存储在我的解决方案资源管理器中 我添加了一个表Test带柱Name 我使用添加一条记录new Sq
  • Scala 方法调用中的大括号[重复]

    这个问题在这里已经有答案了 在 Scala 中 我们可以 println 你好 世界 摘自 Scala 编程 一书 这种用花括号代替圆括号的能力的目的 传入一个参数是为了让客户端程序员能够编写函数 大括号之间的文字 这可以使方法调用感觉更像