Нужна помощь в понимании синтаксиса MUMPS

Не могли бы вы сообщить мне значение приведенного ниже утверждения?

S:%B= %B="@1" S:%E= %E="@999"

person Tina    schedule 18.03.2011    source источник


Ответы (3)


Так как строка:

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», не является именем переменной, поэтому маловероятно, что эти значения по умолчанию предназначены для косвенной ссылки на другое значение.

person David Whitten    schedule 14.06.2011

Предполагая, что наборы разрешаются как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 и т. д., отмечает, что они зависят от оператора, следующего сразу за двоеточием.

Что касается синтаксиса, то он настолько уродлив, насколько его делают программисты.

person wilee    schedule 13.06.2011

Это называется условием SET. УСТАНОВИТЕ переменные %B или %E в соответствующие переменные, если они равны нулю.

person rkg    schedule 21.03.2011