Мне очень нравится:
var value = maxValue > minValue ? minValue : maxValue;
В Coffescript есть что-то столь же сжатое?
Мне очень нравится:
var value = maxValue > minValue ? minValue : maxValue;
В Coffescript есть что-то столь же сжатое?
value = if maxValue > minValue then minValue else maxValue
В javascript и coffeescript есть более сжатый вариант:)
value = Math.min(minValue, maxValue)
Как отмечает Răzvan Panda, мой комментарий может на самом деле один из лучших ответов:
value = `maxValue > minValue ? minValue : maxValue`
Это случай, когда кажется, что у CoffeeScript есть конкурирующие философии:
Поскольку все операции возвращают результат, метод if/then/else делает то, что вам нужно. Добавление оператора? /: Является избыточным.
Вот где я хочу, чтобы они передали нам оператор:/: trernary, даже если он избыточен... он просто читается лучше, чем вариант if/then/else.
Просто мой 2c.
Вы можете написать это следующим образом:
value = if maxValue > minValue then minValue else maxValue
Он будет компилироваться как ваш код.
В документации есть раздел под названием "Условные, тройные и условные присвоения" . Это заставляет думать, что coffeescript поддерживает
condition ? when-true : when-false
но на самом деле это не так.
Здесь патч (и он нажал на coffeescript.org):
http://github.com/jashkenas/coffee-script/commit/ec2d358ae3c82e9888c60695d7cce05edde0c55a
mood = greatlyImproved if singing
if happy and knowsIt
clapsHands()
chaChaCha()
else
showIt()
date = if friday then sue else jill
options or= defaults
value = maxValue > minValue && minValue || maxValue
Это действительно неверно, проверьте комментарии.