scala中.map(...)和.map {...}之间的区别是什么
例如:
-
List(1, 2, 3).map(i=> i + 1)
-
List(1, 2, 3).map {i => i + 1}
他们都得到相同的结果:List(2, 3, 4)
但是对于此示例List(1, 2).map { println("Hi"); _ + 1 }
结果如下,为什么 '嗨' 只打印一次?
Hi
List[Int] = List(2, 3)
通常,您可以使用括号括起简单的函数参数:
l.map( x => x * 2 )
用大括号括起更复杂的代码块或部分函数,包括case
模式匹配:
l.map{ x => val y = x * 2 y } l.map{ case x if x%2 == 0 => x * 2 case _ => 0 }
至于Hi仅打印一次的原因,List(1, 2).map{ println("Hi"); _ + 1 }与List(1, 2).map{ println("Hi"); x => x + 1 }没有区别。要在println次迭代中包含map:
List(1, 2).map{ x => println("Hi"); x + 1 } // Hi // Hi // res1: List[Int] = List(2, 3)
故乡明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话