Понимание заявления паротита

Что означает это утверждение: S A=$P(P,,2) I S?


person Rachana    schedule 21.03.2011    source источник


Ответы (2)


Это может быть недопустимый синтаксис, основанный на реализации MUMPS. Например, Intersystem Cache выдаст синтаксическую ошибку, так как второй параметр, передаваемый функции piece, пуст.

Функция $P или $PIECE(str, delim, num) возвращает num-й сегмент str, если он разделен delim. Итак, p("a^b^c","^",2) возвращает «b». Когда delim является пустой строкой, $P возвращает пустую строку. Однако может быть разница между передачей ничего и пустой строки.

S A=$P(P,,2) предлагает установить для переменной A значение, возвращаемое функцией piece.

Наконец, I S говорит, что если значение переменной S оценивается как истинное, продолжайте выполнение оставшейся части этой строки. Команда I или IF также имеет побочный эффект установки переменной $T в 1, если выражение истинно, или 0, если выражение ложно. Это важно, если за вашей строкой кода следует оператор else, который использует $T для определения того, вернул ли предыдущий оператор if значение false.

person Brian Pellin    schedule 21.03.2011
comment
Не могу ничего добавить, кроме того, что в MUMPS пробелы имеют важное значение, общий синтаксис такой: за которым следуют два пробела: ‹command›‹space›‹space›‹next_command›... (В любом случае, рад видеть здесь M пользователей или, по крайней мере, бывших пользователей.) - person ern0; 20.08.2013

Это означает

Set A = $PIECE(P,,2) 

$PIECE(string,delimiter,from) возвращает подстроку, которая является n-й частью строки, где целое число n задается параметром from, а части разделены разделителем. Разделитель не возвращается.

Ссылки на документацию находятся здесь: http://docs.intersystems.com/cache20102/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fpiece

person rkg    schedule 21.03.2011