gpt4 book ai didi

scala - 为什么 Scala 中没有 i++?

转载 作者:行者123 更新时间:2023-12-03 06:42:00 27 4
gpt4 key购买 nike

我只是想知道为什么没有i++来增加一个数字。据我所知,Ruby 或 Python 等语言不支持它,因为它们是动态类型的。所以很明显我们不能编写像 i++ 这样的代码,因为 i 可能是一个字符串或其他东西。但 Scala 是静态类型的 - 编译器绝对可以推断将 ++ 放在变量后面是否合法。

那么,为什么 Scala 中不存在 i++ 呢?

最佳答案

Scala 没有 i++因为它是一种函数式语言,并且在函数式语言中,避免了有副作用的操作(在纯函数式语言中,根本不允许有任何副作用)。 i++的副作用是i现在比以前大 1。相反,您应该尝试使用不可变对象(immutable对象)(例如 val 而不是 var )。

此外,Scala 并不真正需要 i++因为它提供了控制流结构。在 Java 和其他语言中,您需要 i++经常构建whilefor迭代数组的循环。然而,在 Scala 中,你可以直接说出你的意思: for(x <- someArray)someArray.foreach或类似的规定。 i++在命令式编程中很有用,但是当你达到更高的水平时,它很少是必要的(在Python中,我从来没有发现自己需要它一次)。

你说得对++ 可以在Scala中,但这并不是因为它没有必要,而且只会阻塞语法。如果您确实需要它,请说 i += 1 ,但由于 Scala 更频繁地要求使用不可变和丰富的控制流进行编程,因此您应该很少需要这样做。您当然可以自己定义它,因为运算符实际上只是 Scala 中的方法。

关于scala - 为什么 Scala 中没有 i++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com