I just wonder why there is no i++
to increase a number. As what I know, languages like Ruby or Python doesn't support it because they are dynamically typed. So it's obviously we cannot write code like i++
because maybe i
is a string or something else. But Scala is statically typed - the compiler absolutely can infer that if it is legal or not to put ++
behind a variable.
So, why doesn't i++
exist in Scala?
Learning loops to get familiar with Scala is bad. It's as if you wanted to learn French but still pronounce the 'h'. You need to let it go. If loops are one of the first things you learn in Scala, that will validate all the other concepts you might have encountered in other languages.
The reference types such as Objects, and Strings can be nulland the value types such as Int, Double, Long, etc, cannot be null, the null in Scala is analogous to the null in Java.
In Scala when you write i += 1 the compiler first looks for a method called += on the Int.
Nothing - at the bottom of the Scala type hierarchy. Null is the type of the null literal. It is a subtype of every type except those of value classes. Value classes are subclasses of AnyVal, which includes primitive types such as Int, Boolean, and user-defined value classes.
Scala doesn't have i++
because it's a functional language, and in functional languages, operations with side effects are avoided (in a purely functional language, no side effects are permitted at all). The side effect of i++
is that i
is now 1 larger than it was before. Instead, you should try to use immutable objects (e.g. val
not var
).
Also, Scala doesn't really need i++
because of the control flow constructs it provides. In Java and others, you need i++
often to construct while
and for
loops that iterate over arrays. However, in Scala, you can just say what you mean: for(x <- someArray)
or someArray.foreach
or something along those lines. i++
is useful in imperative programming, but when you get to a higher level, it's rarely necessary (in Python, I've never found myself needing it once).
You're spot on that ++
could be in Scala, but it's not because it's not necessary and would just clog up the syntax. If you really need it, say i += 1
, but because Scala calls for programming with immutables and rich control flow more often, you should rarely need to. You certainly could define it yourself, as operators are indeed just methods in Scala.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With