Re: [Vala] Setting and getting properties at the same time
- From: Jarosław Ciupiński <kotowate gmail com>
 
- To: foracc <foracc d00m info>
 
- Cc: vala-list gnome org
 
- Subject: Re: [Vala] Setting and getting properties at the same time
 
- Date: Thu, 1 Nov 2012 23:12:37 +0100
 
I think that it is pretty consistent and expected behaviour not only in
Vala but in other languages as well (as long as they allow such things). I
would be worried if it would work other way around. Example:
int x, y;
x = 2;
y = x = 3;
I expect that both y and x will have same value, 3. I would not like to get
y=2 and x=3.
I hope that this clears things up but I also wonder in which language it
works differently.
JC
2012/11/1 foracc <foracc d00m info>
Hello list,
I stumbled on some (for me) unexpected behaviour when setting and getting
a property at the same time, which is not consistend with simple types like
int.
When doing something like
int x = (myclass.myproperty = y);
x will be set to y, and not whatever mycalss.myproperty will be (or what
was mycalss.myproperty set to before). Is this a limitation of Vala?
The code below shows this behaviour and should be pretty self-explanatory.
---------- snip ----------
public class myclass : Object
{
   private int _number;
   public int number {
      set { _number = value * 2; }
      get { return _number; }
   }
}
public void main(string[] args)
{
   myclass m = new myclass();
   int i = 2;
   m.number = 2;
   // prints 4, ok
   stdout.printf("number: %d\n", m.number);
   // prints 3, not 6 (or at least 4)
   stdout.printf("number: %d\n", m.number = 3);
   // prints 6, ok
   stdout.printf("number: %d\n", m.number);
   / prints 5, ok
   stdout.printf("i: %d\n", i = 5);
}
---------- snip ----------
______________________________**_________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/**mailman/listinfo/vala-list<https://mail.gnome.org/mailman/listinfo/vala-list>
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]