Не могли бы вы сообщить мне значение приведенного ниже утверждения?
S:%B= %B="@1" S:%E= %E="@999"
Не могли бы вы сообщить мне значение приведенного ниже утверждения?
S:%B= %B="@1" S:%E= %E="@999"
Так как строка:
S:%B= %B="@1" S:%E= %E="@999"
на самом деле это не код MUMPS, я согласен с другими ответившими, что, возможно, возникла проблема с вставкой кода на этот форум.
Наиболее вероятный код MUMPS, который вы намеревались опубликовать:
S:%B="" %B="@1" S:%E="" %E="@999"
с полным объяснением, это две команды MUMPS в одной строке:
S:%B="" %B="@1"
S:%E="" %E="@999"
и с использованием не-Terse MUMPS будет:
SET:%B="" %B="@1"
SET:%E="" %E="@999"
или на английском языке, эти команды проверяют переменную, и если она не имеет значения, которое имеет смысл для этой программы, присваивает (SET) значение по умолчанию для этой переменной.
Для переменной с именем %B строковое значение по умолчанию "@1" назначается, когда условие защиты (%B="") выполняется. Аналогично, для переменной с именем %E строковое значение по умолчанию "@999" назначается, если переменная %E равна пустой строке.
Символ «@» в MUMPS используется для поздней привязки значений к переменным (в языке это называется Indirection), но за ним должно следовать имя переменной. чисто числовое значение, такое как «1» или «999», не является именем переменной, поэтому маловероятно, что эти значения по умолчанию предназначены для косвенной ссылки на другое значение.
Предполагая, что наборы разрешаются какS:%B=""
(DTM и Cache, похоже, не разрешают неявный нуль по умолчанию при сравнении значений; кто-нибудь, пожалуйста, прокомментируйте, если я ошибаюсь),
set:%B="" %B="@1" set:%E="" %E="@999"
, эквивалентно
if %B="" set %B="@1"
if %E="" set %E="@999"
Для каждой из переменных %B и %E, если это пустая строка, присвойте литеральные строковые значения "@1" и "@999" соответственно. Двоеточие (:) после таких команд, как SET, WRITE, DO и т. д., отмечает, что они зависят от оператора, следующего сразу за двоеточием.
Что касается синтаксиса, то он настолько уродлив, насколько его делают программисты.
Это называется условием SET
. УСТАНОВИТЕ переменные %B или %E в соответствующие переменные, если они равны нулю.