I tend to avoid += since it's a "magic" edge case in variable scope.
If all of my code takes the strict view that variables are immutable, I am
much less likely to confuse anyone who reads my code later.
This does end up with stupid code like $l_var = $var + ['foo'], but that
can't be helped while preserving clarity.
Now, I would LOVE the ability to manipulate all variables within scope.
That would be very nice and then I would vote for keeping += around.
That would allow for things like:
if empty($foo) {
$foo = 'bar'
}
Instead of:
if empty($foo) {
$l_foo = 'bar'
}
else {
$l_foo = $foo
}
Which is irritating.
Trevor
On Fri, Aug 8, 2014 at 7:55 PM, Andy Parker <[email protected]> wrote:
> I'm looking over PUP-2972, which is closely related to PUP-489, and is
> specified (but changeable, hence this email!) at
> https://github.com/puppetlabs/puppet-specifications/blob/master/language/expressions.md#-operator-8
> and
> https://github.com/puppetlabs/puppet-specifications/blob/master/language/expressions.md#-operator
>
> PUP-2972 has information about what I found by looking at modules from the
> forge and on github to see how += is being used right now. The purpose of
> this is to try to make += consistent with +, the behavior of + to be much
> more predictable, and -= is added by analogy with += existing.
>
> What I'd like to know is:
>
> * Do the semantics specified make sense?
> * The recommendation of PUP-2972 suggests just dropping += (and -=)
> because they are confusing. I'm reluctant to do that since it is already in
> use and has been around for a while. Is it useful to keep them around?
>
> The most notable change in functionality is that += won't work for string
> concatenation anymore, because + doesn't do string concatenation. Instead
> you'll need to use string interpolation ($a = "$a$b").
>
> --
> Andrew Parker
> [email protected]
> Freenode: zaphod42
> Twitter: @aparker42
> Software Developer
>
> *Join us at PuppetConf 2014 <http://www.puppetconf.com/>, September
> 22-24 in San Francisco*
> *Register by May 30th to take advantage of the Early Adopter discount
> <http://links.puppetlabs.com/puppetconf-early-adopter> **—**save $349!*
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-dev/CANhgQXsf-qieFaFOoYo7WkS%2BsdeveLsBGO3pgZpsUV2o5hAjLg%40mail.gmail.com
> <https://groups.google.com/d/msgid/puppet-dev/CANhgQXsf-qieFaFOoYo7WkS%2BsdeveLsBGO3pgZpsUV2o5hAjLg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
Trevor Vaughan
Vice President, Onyx Point, Inc
(410) 541-6699
[email protected]
-- This account not approved for unencrypted proprietary information --
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-dev/CANs%2BFoVT5uS0%2BDL0nC-cj8zxFdc2NMrxOZ574wm%2BEbG7jrB3bA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.