Все верно на этапе компиляции явно определяется тип инициализирующего значения.
И С++ по прежнему остается языком со статической типизацией, потому что auto это тоже тип.
А насчет динамичности я не успел развернуть мысль, это было больше стёбное выражение, говорящее о том, что новом стандарте и так упростил многое до безумия, куда еще проще, а главное зачем?
JSON — это формат обмена данными, к организации когда он никакого отношения не имеет. Но вы наверное имеете ввиду само представление данных.
У меня как раз есть модуль для генерации CSS из словаря, думаю добавить еще HTML.
Параметры foo и bar берутся либо из:
— функции (имя функции прописывается как _fn=«some_function»)
— наследуются от родительского элемента
— переменных окружений
— явно назначаются (если задать значение параметру типа foo=1, то так и будет)
Если параметра нет и его значение явно не задано, то название параметра не будет выведено.
Видимо тем, что остальные статьи заканчивались на первом примере этого поста.
Иными словами автор выбрал несколько иной подход, сперва привел итоговый пример, а затем разложил все по полочкам, так сказать сохранил интригу и не дал заснуть.
Это не «багофича», а неявное приведение типа из объектного к элементарному.
А происходит это из-за неявного вызова метода valueOf().
Такую ситуацию можно самому смоделировать:
var object = {
a: 1,
b: 2,
valueOf: function () {
return this.a + this.b;
}
};
alert(+object) //3
Обо всем этом написано в спецификации, просто большинство людей считают что ее можно читать, мол язык простой и так все понятно, а что не понятно списывают на глюки языка.
По поводу редакторов для CoffeeScript, в корне не согласен.
Во всех продуктах jetBrains c недавних пор реализована полная поддержка, точно такая же как и для JavaScript. Причем полностью совместима с API Node.
Добавлю лишь, что вы правы и неявный тип var в C# это близкий аналог auto.
И С++ по прежнему остается языком со статической типизацией, потому что auto это тоже тип.
А насчет динамичности я не успел развернуть мысль, это было больше стёбное выражение, говорящее о том, что новом стандарте и так упростил многое до безумия, куда еще проще, а главное зачем?
По-моему очень даже динамично, не находите?
Если раньше приходилось писать так:
То сейчас можно уже не указывать тип:
А перебор коллекций вообще упрощен до смешного:
или:
Про Smart pointer's, Lambda's, Tuple's и пр. тоже не стоит забывать.
У меня как раз есть модуль для генерации CSS из словаря, думаю добавить еще HTML.
Просто я не понял что вы имеете ввиду под хранением функционала (копия куска кода aka Here document)?
<#:tag _name="a" _action="mail" _params="foo,bar">link</tag:#>
Результат:
<а httр://mail.ru?foo=1&bar=2">link</а>
Параметры foo и bar берутся либо из:
— функции (имя функции прописывается как _fn=«some_function»)
— наследуются от родительского элемента
— переменных окружений
— явно назначаются (если задать значение параметру типа foo=1, то так и будет)
Если параметра нет и его значение явно не задано, то название параметра не будет выведено.
Иными словами автор выбрал несколько иной подход, сперва привел итоговый пример, а затем разложил все по полочкам, так сказать сохранил интригу и не дал заснуть.
А происходит это из-за неявного вызова метода valueOf().
Такую ситуацию можно самому смоделировать:
Обо всем этом написано в спецификации, просто большинство людей считают что ее можно читать, мол язык простой и так все понятно, а что не понятно списывают на глюки языка.
Во всех продуктах jetBrains c недавних пор реализована полная поддержка, точно такая же как и для JavaScript. Причем полностью совместима с API Node.
А сравнивать CoffeeScript и JavaScript по этому видео вообще не корректно, потому что +[] и там и там транзитивно нулю.
А еще, ставьте везде MS-DOS даже если он вам не нужен.
Ну правда, аргументируйте как-то, почему все Python-разработчики должны уставить этот модуль.