Přidat operátor ‚not‘ do Latte?

David Grudl
Nette Core | 8082
+
+1
-

Zvažuju do Latte přidat operátor not, slovní obdobu vykřičníku:

{if !$items}žádné položky{/if}

{if not $items}žádné položky{/if}

Obecně mi operátor vykřičník nepřipadá úplně šťastný, protože je nenápadný a lze jej snadno přehlédnout. Což se sice dá řešit konvencí psaní s mezerou {if ! $items}, ale říkám si, že v šablonách by to asi více slušelo slovu not.

Oproti vykřičníku bych mu dal nižší prioritu, aby jej bylo možné používat i bez závorek v běžných výrazech jako:

{if not $value in $array} // místo !($value in $array)
{if not $a < $b} // znamená !($a < $b), nikoliv !$a < $b
...

Vyzkoušet jej můžete na fiddle, jako verzi zvolte 3.0.x-dev.

Marek Bartoš
Nette Blogger | 1146
+
+1
-

Hodila by se tabulka, co všechno se bude vykonávat jinak. Na nějaké složitější podmínky např. s řetězením null coalesce bych se to asi bál používat.

Udělal jsem pár examples pro ostatní
Složené podmínky https://fiddle.nette.org/latte/#… (beze změny)
Negace výrazů https://fiddle.nette.org/latte/#… (negace proměnné vyžaduje závorky)
Negace při přiřazení do proměnné https://fiddle.nette.org/latte/#… (beze změny)

Editoval Marek Bartoš (19. 10. 2022 21:37)

Bulldog
Člen | 110
+
+1
-

Zůstane i původní zápis s vykřičníkem?

hrach
Člen | 1834
+
+12
-

Latte bylo vždy prezentováno jako PHP v šabloně, dávalo porovnání s Twiggem, atp. Já chápu, že toto není první odchylka vůči PHP, ale přijde mi, že je veskrze zbytečná. Pokud se někomu zdá vykřičník pro nějaký kontext nepodstatný, je tu plno jiných řešení, od lepšího fontu a zvýraznění (symboly tučně), po psaní !== true.

David Grudl
Nette Core | 8082
+
0
-

Latte stále je PHP v šabloně, na syntaxi PHP se nic nemění.

Marek Bartoš
Nette Blogger | 1146
+
+2
-

Jen aby to nemátlo kodéry… šablony často píšou méně zkušení

m.brecher
Generous Backer | 713
+
0
-

Mě to přijde jako dobrý nápad, protože smyslem latte je zpřehlednit psaní šablon. Vykřičník je opravdu snadno přehlédnutelný. Not je daleko čitelnější.