Как использовать Microsoft. Сценарии. Хостинг?

Из-за приоритета оператора Perl оператор анализируется как:

($condition ? $a = 2 : $a ) = 3 ;

, поскольку?: оператор приводит к присваиваемому результату, 3 присвоен результату условия.

, Когда $condition верен, что это означает $a=3 предоставления $a=2=3

, Когда $condition является ложью, это означает $a=3 предоставления $a=3

корректный способ записать, что это

$a = $condition ? 2 : 3;

В целом, необходимо действительно выйти из привычки к использованию условных выражений для делания уроки, как в исходном примере - это - вид вещи, которая приводит к Perl, получая репутацию быть только для записи.

А хорошее эмпирическое правило - то, что условные выражения только для простых значений, никогда выражения с побочными эффектами. Когда Вы или кто-то еще должны считать этот код восемь месяцев с этого времени, Вы предпочли бы, чтобы он читал как это?

$x < 3 ? foo($x) : bar($y);

Или как это?

if ($x < 3) {
  $foo($x);
} else {
  $bar($y);
}
9
задан wishi 5 November 2009 в 15:15
поделиться

3 ответа

Похоже, это часть двоичных файлов DLR ... подробнее здесь:

https://blogs.msdn.com/seshadripv/archive/2008/06/24/ how-to-write-a-simple-dlr-host-in-c-using-hosting-api.aspx

9
ответ дан 4 December 2019 в 08:01
поделиться

The DLR is actually broken into 2 parts: the "inner layer" which is included in .NET 4.0 and is part of System.Core.dll (and on downlevel platforms is available as Microsoft.Scripting.Core.dll) the "outer layer" which is available on CodePlex and ships w/ IronPython and IronRuby and is in Microsoft.Scripting.dll and Microsoft.Dynamic.dll. This part does not ship w/ .NET 4.0.

12
ответ дан 4 December 2019 в 08:01
поделиться

Microsoft.Scripting является частью среды выполнения динамического языка . Среда выполнения динамического языка является частью .NET 4, IronPython и IronRuby , а также доступна отдельно.

Джон Лам , ведущий разработчик IronRuby, создал небольшой библиотека под названием repl-lib , который реализует простой гибрид редактора / REPL для IronRuby и IronPython, который вы можете просто добавить в свое приложение. В сообщении блога Джон Лам демонстрирует, как он использовал repl-lib для добавления скриптов в клиент Twitter Witty .NET в 8 (!) Строках кода (плюс около 90 строк XAML для пользовательского интерфейса REPL и кнопки REPL).

Это сообщение в блоге основано на презентации на TechEd 2009 , к которой у меня, к сожалению, нет доступа, но если вы это сделаете, вам следует проверить это.

Не забудьте также проверить вилки repl-lib , особенно Джима Девилла.

5
ответ дан 4 December 2019 в 08:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: