Incrementing and getting value

前端 未结 3 1449
予麋鹿
予麋鹿 2021-01-13 11:04

Simple scala question. Consider the below.

scala> var mycounter: Int = 0;
mycounter: Int = 0

scala> mycounter += 1

scala> mycounter
res1: Int = 1
         


        
3条回答
  •  心在旅途
    2021-01-13 11:25

    Using '+=' return Unit, so you should do:

    { mycounter += 1; mycounter }
    

    You can too do the trick using a closure (as function parameters are val):

    scala> var x = 1
    x: Int = 1
    
    scala> def f(y: Int) = { x += y; x}
    f: (y: Int)Int
    
    scala> f(1)
    res5: Int = 2
    
    scala> f(5)
    res6: Int = 7
    
    scala> x
    res7: Int = 7
    

    BTW, you might consider using an immutable value instead, and embrace this programming style, then all your statements will return something ;)

提交回复
热议问题