Hello everyone,
I’ve got a quick question regarding a code I have to write. A brief description: I have to write a code about a ticket machine which will also count the money inserted and eventually return it to the customer, if he decides to cancel the process.
For the money inserted, I created a simple Array:
val money = Array(0.1, 0.2, 0.5, 1, 2, 5)
I use this Array to detect every kind of money which isn’t valid for the machine.
Furthermore, I created an empty ArrayBuffer to count all the pieces of money thrown inside:
var moneythrownin = ArrayBuffer()
And last bot not least, I have got a function to stock the type of coin tossed into the machine:
coininserted = StdIn.readLine("Please insert your money - Type 1 for 1€, etc.)
So, my problem is, that I wanted to write underneath this whole thing, that every “coin inserted” is added to the empty ArrayBuffer. So I wrote:
MoneyThrownIn += CoinInserted
The code doesn’t work, because Scala isn’t accepting my “+=” - can someone please help me?
Thanks in advance
Can you show your code more exactly, and what error you’re getting? The code you have here isn’t possible, so I think you’re transcribing by hand, and the details might matter. If you put a line containing just three backticks (```) and nothing else, before and after the code, it will display more nicely.
That said – if you’re saying:
var moneythrownin = ArrayBuffer()
Then I believe you are creating an ArrayBuffer
that you can’t actually put anything into, because you haven’t said what type it is. You probably need to say:
val moneythrownin = ArrayBuffer[String]()
to say that this is an ArrayBuffer
of String
s.
Also, note that moneythrownin
should probably be a val
, not a var
. The ArrayBuffer
is itself mutable – that is, you can change the values inside of it; you don’t need a var
to do that. You would only need it to be a var
if you intended to create different ArrayBuffer
s and assign them to moneythrownin
, which probably isn’t what you intend.
(In general, var
s are unusual in idiomatic Scala – you should always use val
unless you have a specific reason to use a var
.)
2 Likes