rfc:conditional_break_continue_return

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
rfc:conditional_break_continue_return [2020/05/16 19:16] – minor edits ralphschindlerrfc:conditional_break_continue_return [2020/05/16 19:18] ralphschindler
Line 19: Line 19:
         return $dividend / $divisor;         return $dividend / $divisor;
     }      } 
-</code php>+</code>
  
 Option #2 with optional return after return keyword: Option #2 with optional return after return keyword:
Line 31: Line 31:
         return $dividend / $divisor;         return $dividend / $divisor;
     }      } 
-</code php>+</code>
  
 Considering Zeev's quote: Considering Zeev's quote:
Line 59: Line 59:
 <code php> <code php>
 return if ($condition): $returnValue; return if ($condition): $returnValue;
-</code php>+</code>
  
 Pros: Pros:
-1. `return if` acts as a compound keyword, put another way since `if` must follow `return`, their proximity acts just like a new singular keyword would. It would effectively be a singular visual cue (much like, for example `return_if` if it were proposed). +  - `return if` acts as a compound keyword, put another way since `if` must follow `return`, their proximity acts just like a new singular keyword would. It would effectively be a singular visual cue (much like, for example `return_if` if it were proposed). 
-2. In the most common coding standards, `return if` will be aligned to the left most side of a line of code, making it easier for (humans) to scan for and quickly identify. +  In the most common coding standards, `return if` will be aligned to the left most side of a line of code, making it easier for (humans) to scan for and quickly identify. 
-3. (Building on the #2 Pro...) It keeps the precedence of information about the statement in a prioritized order. Put another way, since the first 2 lexical tokens are constant, and a meaning for the full statement can be derived from those, the following information (the actual condition and the actual optional return value - which I argue have less precedence) can be found later in the statement. +  (Building on the #2 Pro...) It keeps the precedence of information about the statement in a prioritized order. Put another way, since the first 2 lexical tokens are constant, and a meaning for the full statement can be derived from those, the following information (the actual condition and the actual optional return value - which I argue have less precedence) can be found later in the statement. 
-4. the optional return value syntax mimics that of the function/method return type hint syntax, as in at the end of a method signature in the `: <return>` format.+  - The optional return value syntax mimics that of the function/method return type hint syntax, as in at the end of a method signature in the `: <return>` format.
  
 Cons: Cons:
-1. Does not read like an "English-like" statement: "Return X if Y"+  - Does not read like an "English-like" statement: "Return X if Y"
  
 ==== Variation #2 ==== ==== Variation #2 ====
Line 76: Line 76:
 <code php> <code php>
 return $returnValue if ($condition); return $returnValue if ($condition);
-</code php>+</code>
  
 Pros: Pros:
-1. Reads well "Return subject if condition" +  - Reads well "Return subject if condition" 
-2. Follows a similar pattern as found in other languages, like Ruby+  Follows a similar pattern as found in other languages, like Ruby
  
 Con: Con:
-1. Large optional return values will create more space between the `return` and `if` keywords, potentially making it harder for (humans) to scan for the conditional qualifier.+  - Large optional return values will create more space between the `return` and `if` keywords, potentially making it harder for (humans) to scan for the conditional qualifier.
  
 ===== Backward Incompatible Changes ===== ===== Backward Incompatible Changes =====
rfc/conditional_break_continue_return.txt · Last modified: 2022/04/17 18:38 by ilutov