Kontekst: Nowe działy na forum
niech się pojawią tylko pierwsze posty mutujące stan
object eloświat
{
def 🐖() =
{
// a:
val counter:Int = 0;
println("Hello, world")
counter++;
// goto a;
}
}
ScalaFiddle.scala error: illegal character '\ud83d'
def [CIACH!]() =
^
ScalaFiddle.scala error: illegal character '\udc16'
def [CIACH!]() =
^
ScalaFiddle.scala error: identifier expected but something found.
def [CIACH!]() =
^
oraz jeszcze jeden ukryty rodzynek
ScalaFiddle.scala error: value ++ is not a member of scala.this.Int
counter++;
WeiXiao napisał(a):
oraz jeszcze jeden ukryty rodzynek
ScalaFiddle.scala error: value ++ is not a member of scala.this.Int
counter++;
Ale co w tym dziwnego że scala nie ma zdefiniowanego operatora ++
?
@WeiXiao: Protip:
def `🐖`(): Unit = { println("chrum, chrum") }
`🐖`()
// chrum, chrum
w sumie to nic
++ jest po to, by były zagwozdki typu: co wypisze poniższy kod?
var x = 0
println(++(++(++x)++)++)++ + ++x++ * ++x++)
Oczywiście kod jest popsuty i bez sensu, ale co jakiś czas pojawiają się rozkminy co się powinno stać, gdy na jednej zmiennej w jednym wyrażeniu zrobi się kilka razy ++.
A i w sumie jeszcze jest inne zastosowanie ++. Podobno ++i jest szybsze niż i++ i dlatego zboczeni c++owcy w pętlach robią ++i. W sumie można by ich nazwać ++cowcami. Nowy, szybszy ++C.
Nie no. De facto w Scali tez mamy ++
, tylko ze on dziala troche inaczej niz ludzie z C mogliby oczekiwac :)
List(1,2,3) ++ List(4,5,6)