Что означает это утверждение: S A=$P(P,,2) I S
?
Понимание заявления паротита
Ответы (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.
Это означает
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