digitalmars.D.learn - Expression evaluation order in if statement
- Aarti_pl (19/19) Aug 23 2007 Hello!
- Lutger (4/13) Aug 23 2007 It's ok, see: http://www.digitalmars.com/d/expression.html#AndAndExpress...
- Aarti_pl (5/20) Aug 23 2007 Great.
- Frits van Bommel (6/26) Aug 23 2007 Also, for arrays "null" is just an empty array, so you don't need the
- Regan Heath (4/31) Aug 23 2007 If you're referring to me, I wasn't complaining about this behaviour at
Hello!
Can I use if expression in following way, or is it an error?:
void func(char[] str) {
if (str !is null && str=="somestring") {
... some code ...
}
}
or should I rather use:
void func(char[] str) {
if (str !is null)
if (str=="somestring") {
... some code ...
}
}
The second way is more explicit and makes code unreadable soon...
I can find clear answer in docs...
BR
Marcin Kuszczak
(Aarti_pl)
Aug 23 2007
Aarti_pl wrote:
Hello!
Can I use if expression in following way, or is it an error?:
void func(char[] str) {
if (str !is null && str=="somestring") {
... some code ...
}
}
It's ok, see: http://www.digitalmars.com/d/expression.html#AndAndExpression
"If the left operand, converted to type bool, evaluates to false, then
the right operand is not evaluated."
Aug 23 2007
Lutger pisze:Aarti_pl wrote:Great. Thanks for advice! BR Aarti_plHello! Can I use if expression in following way, or is it an error?: void func(char[] str) { if (str !is null && str=="somestring") { ... some code ... } }It's ok, see: http://www.digitalmars.com/d/expression.html#AndAndExpression "If the left operand, converted to type bool, evaluates to false, then the right operand is not evaluated."
Aug 23 2007
Aarti_pl wrote:Lutger pisze:Also, for arrays "null" is just an empty array, so you don't need the first part: 'if (str == "something")' works just fine even if 'str' is null (unlike with classes). (A while back some people were complaining about this, but I don't think this behavior is likely to change)Aarti_pl wrote:Great. Thanks for advice!Hello! Can I use if expression in following way, or is it an error?: void func(char[] str) { if (str !is null && str=="somestring") { ... some code ... } }It's ok, see: http://www.digitalmars.com/d/expression.html#AndAndExpression "If the left operand, converted to type bool, evaluates to false, then the right operand is not evaluated."
Aug 23 2007
Frits van Bommel wrote:Aarti_pl wrote:If you're referring to me, I wasn't complaining about this behaviour at all, this behaviour is great, I hope it never changes. ReganLutger pisze:Also, for arrays "null" is just an empty array, so you don't need the first part: 'if (str == "something")' works just fine even if 'str' is null (unlike with classes). (A while back some people were complaining about this, but I don't think this behavior is likely to change)Aarti_pl wrote:Great. Thanks for advice!Hello! Can I use if expression in following way, or is it an error?: void func(char[] str) { if (str !is null && str=="somestring") { ... some code ... } }It's ok, see: http://www.digitalmars.com/d/expression.html#AndAndExpression "If the left operand, converted to type bool, evaluates to false, then the right operand is not evaluated."
Aug 23 2007








Regan Heath <regan netmail.co.nz>