scala中循环不建议使用while和do...while,而建议使用递归

解析,因为while和do…while中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量
例子:计算1-10的和

var num = 0;
var x = 0;
while(x<=10){
    num += x;
    x += 1;
}

函数式编程的重要思想就是尽量不要产生额外的影响,上面的代码就不符合函数式编程的思想
例子:递归实现1-10的和

def mx(num:Int,sum:Int):Int = {
    if(num<=10) return mx(num+1,sum + num);
    else return sum;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scala 使用 Jackson 库进行 JSON 数据的反序列化操作时,可以使用 `mapper.readValue` 方法。如果需要反序列化的 JSON 数据包含自定义的 Java 类,可以通过在 Scala 使用 Java 类的方式来实现。 具体实现方法如下: 1. 定义 Java 类 首先,在 Scala 代码使用 `mapper.readValue` 方法前,需要先定义一个 Java 类来表示需要反序列化的 JSON 数据的对象。例如,下面的代码定义了一个 `Person` 类: ```java public class Person { private String name; private int age; // getters and setters } ``` 2. 使用 Scala 调用 Java 类 在 Scala ,可以通过 `JavaConverters` 工具类来将 Java 类转换成 Scala 类。例如,下面的代码将 `Person` 类转换成了 `PersonScala` 类: ```scala import scala.collection.JavaConverters._ case class PersonScala(name: String, age: Int) val json = """{"name": "Alice", "age": 30}""" val mapper = new ObjectMapper() val person = mapper.readValue(json, classOf[Person]).asScala val personScala = PersonScala(person.name, person.age) ``` 注意,在调用 `mapper.readValue` 方法时,需要将 `classOf[Person]` 作为第二个参数传入,以告诉 Jackson 库需要将 JSON 数据转换成 `Person` 类。 3. 使用 Scala 类 现在,`PersonScala` 类就可以在 Scala 代码使用了。例如,下面的代码创建了一个 `PersonScala` 对象并打印出其属性: ```scala val personScala = PersonScala("Bob", 25) println(s"Name: ${personScala.name}, Age: ${personScala.age}") ``` 输出结果为: ``` Name: Bob, Age: 25 ``` 这样,就可以在 Scala 使用 Java 自定义类了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值