Scala仙境:功能风格

Scala鼓励使用函数式编程。 对于来自Java或C#命令式世界的程序员来说,这是主要的挑战。 第一步是要认识到函数式和命令式编程之间的区别。 Scala有两个用于变量声明的关键字:

  • var –可变变量
  • val –不可变的变量

命令性符号之一是代码中var的出现。 Scala鼓励倾向于val ,但是请使用适合给定情况的任何东西。
命令式示例:

def printArgs(args: Array[String]): Unit = {
  var i = 0
  while (i < args.length) {
    println(args(i))
    i += 1
  }
}

更多功能风格:

def printArgs(args: Array[String]): Unit = {
  args.foreach(println)
}

在这里,您可以看到Scala鼓励使用功能样式的原因。 它可以帮助您编写更清晰,更易理解且不易出错的代码。 但是您可以做得更好。 重构的方法不是纯粹的功能。 它具有副作用-打印到标准输出流。 具有副作用的函数的一个标志是其结果类型为Unit 。 如果一个函数不返回任何值,则说明它具有副作用或无用。

最实用的解决方案:

def formatArgs(args: Array[String]) = args.mkString("\n")
println(formatArgs(args))

最好是val ,不可变的对象和方法,并且没有副作用。

参考: Scala Wonderland: Rado Buransky博客博客中我们的JCG合作伙伴 Rado Buransky 的功能样式

翻译自: https://www.javacodegeeks.com/2013/09/scala-wonderland-the-functional-style.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值