ddekany commented on PR #111:
URL: https://github.com/apache/freemarker/pull/111#issuecomment-2254534147

   My reservation is that while `s!?is_blank` is a neat trick, it only solves 1 
uses cases out of the 2:
   
   - Use-case 1: `<#if s is null or blank>`, but also, often we need the 
opposite, `<#if s is not null, nor blank>`
     - With `?is_blank`: `<#if s!?is_blank>`, and the opposite is `<#if 
!s!?is_blank>`
     - With `?blank_to_null`: `<#if !s?blank_to_null??>`, and the opposite is 
`<#if s?blank_to_null??>`
     - With `~` operator: `<#if !s~??>`, and the opposite is `<#if s~??>`
   - Use-case 2: `get the value of s, but if it's null or blank, then evaluate 
to default value 'D'`
     - With `?is_blank`: It's doesn't solve the use case (or is way too 
verbose).
     - With `?blank_to_null`: `s?blank_to_null!'D'`
     - With `~` operator: `s~!'D'`
   
   Admittedly in use-case 1 `?is_blank` tells more directly what it wants, but 
OTOH `?blank_to_null` reduces the problem to the missing value handling 
problem, and so will work with other existing missing value handling mechanism 
as well, like macro argument defaults, passing `null` to Java methods, or 
anything else that will be added in the future.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@freemarker.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to