[QGIS-Developer] Variable syntax: $ vs @

Nathan Woodrow madmanwoo at gmail.com
Mon Jun 19 05:12:07 PDT 2017

Hey Andreas,

They are really two different things.  $geometry is really a function that
takes no arguments. This has been deprecated in favour calling with ()
e.g geometry().
 @ is only for variables.

So you can explain it that $ used to be a shorthand way of calling a
function that took no arguments which has now been replaced with () at the
end to call it. $area = area().  This becomes important because now we
support optional arguments meaning you can take 0 to N arguments.

- Nathan

On Mon, Jun 19, 2017 at 9:53 PM, Neumann, Andreas <a.neumann at carto.net>

> Hi,
> While preparing for a workshop on expressions I wonder how to explain why
> some variables are referenced with the $ sign (like $geometry) while other
> variables start with the @ sign, like @row_number, @layer_name.
> I know that it has historical reasons and that variables with the @ sign
> are newer and are implemented using a different technology.
> But are there plans to get rid of the old $ sign notation and move
> everything to the @ sign notation?
> Just wonder how I best explain this to the participants of the workshop.
> Thanks for your reply,
> Andreas
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20170619/89199e70/attachment-0001.html>

More information about the QGIS-Developer mailing list