I declared a variable outside the function like this:
var s: Int = 0
passed it such as this:
def function(s: Int): Boolean={
s += 1
return true
}
but the error lines wont go away under the "s +=" for the life of me. I tried everything. I am new to Scala btw.
If you just want continuously increasing integers, you can use a Stream.
That creates an iterator over a never-ending stream of number, starting at zero. Then, to get the next number, call
I have also just started using Scala this was my work around.
From What i read you are not passing the same "s" into your function as is in the rest of the code. I am sure there is a even better way but this is working for me.
You don't.
A
var
is a name that refers to a reference which might be changed. When you call a function, you pass the reference itself, and a new name gets bound to it.So, to change what reference the name points to, you need a reference to whatever contains the name. If it is an object, that's easy enough. If it is a local variable, then it is not possible.
See also call by reference, though I don't think this question is a true duplicate.
First of all, I will repeat my words of caution: solution below is both obscure and inefficient, if it possible try to stick with
val
ues.And here is code in action:
If you just want to increment a variable starting with 3
val nextId = { var i = 3; () => { i += 1; i } }
then invoke it:
nextId()