Ответ 1
Пользователь Carsten предоставил следующий комментарий к этому ответу, поскольку считает, что это неправильно.
вещь:
when
используется как здесь, не имеет ничего общего с документированные обычаи - это, по-видимому, называется статическим условным оптимизации и не должны использоваться вне основных библиотек - действительно продолжайте и пытайтесь использовать его - вы увидите, что не можете, если только вы используете трюки, упомянутые в ответе Джона (другой вопрос)
Пользователь Carsten добавил дополнительный комментарий к этому ответу:
Я добавил комментарий - я не думаю, что мое образованное предположение стоит ответа - Я надеялся, что один из инсайдеров, висящих вокруг, наконец, ответит на него официальным ответом.
Ответ, упомянутый в Carsten, первый комментарий пользователя пользователя John Palmer в апреле 2013 года, который ссылается на этот ответ, который он предоставил по синтаксису (# ..... #)
, Что такое (#... #) синтаксис в реализации стандартной библиотеки F3?
Фактически вы можете использовать это, но вы должны указать
--compiling-fslib
(недокументированные) и--standalone
флаги в вашем коде.
Пользователь MisterMetaphor предоставил ответ со ссылкой на сообщение на форуме, в котором говорилось следующее:
Встраиваемый IL в коды F #. Поддерживается ли эта функция?
Не совсем. Цель этой функции 99,9% - для операций определенный в файле FSharp.Core.dll(называемый fslib.dll в 1.9.2.9 и ранее).
Для других целей использования ключевого слова when
см. следующее.
В этом документе Microsoft описывается использование ключевого слова when
для дополнительных условий сопоставления, Match Exions (F #).
В этом документе Microsoft описывается использование ключевого слова when
для выражения ограничений для параметров типового типа, Ограничения (F #).
Также см. этот документ Microsoft, описывающий соответствие шаблонов с ключевым словом when
в различных настройках, Match Matching (F #).
Документ соответствия шаблону говорит следующее вместе с несколькими примерами.
Шаблоны - это правила для преобразования входных данных. Они используются на языке F # для сравнения данных с логической структурой или структуры, разлагать данные на составные части или извлекать информация из данных по-разному.
Документ соответствия выражает следующее вместе с примером.
Вы можете использовать предложение when, чтобы указать дополнительное условие, согласно которому переменная должна соответствовать шаблону. Такое положение относится к как охранник. Выражение, следующее за ключевым словом when, не оценивается если не сопоставляется шаблон, связанный с этим защитником.