Инструменты пользователя

Инструменты сайта


Боковая панель

help:dynamical

Это старая версия документа.


Назад: Служебные локации

Динамический код

  • DYNAMIC [$код],[параметр 1],[параметр 2], … - выполняет код, указанный в виде строки текста. Выполнение кода [$код] здесь аналогично оператору GS.
    • Переданные параметры хранятся в массиве ARGS. Максимальное количество параметров - 91).
    • После выполнения старые параметры ARGS восстанавливаются.
    • Затем продолжение выполнения программы со следующей команды после DYNAMIC.
    • Примеры:
      DYNAMIC '$a="string<<$b>>"'
      DYNAMIC '$a'
      DYNAMIC 'if $a="string":''text!'''
      DYNAMIC "
      $args[0]
      addobj $args[1]
      ",'Текст','Вилка'
      
  • В качестве значения переменной, подставляемого интерпретатором в строку вместо имени переменной в угловых скобках, будет использоваться значение переменной до DYNAMIC.
    • Пример:
      $args[0]='qwerty'
      DYNAMIC '$a="<<$args[0]>>"
      *pl $a
      $a=$args[0]
      *pl $a','fghjk'
      ! соответственно сначала будет выведена строка "qwerty", потом "fghjk"
      
      * DYNEVAL([$код],[параметр 1],[параметр 2], …) - выполнение кода [$код] аналогично оператору FUNC, но код выполняется из строки.
    • Переданные параметры хранятся в массиве ARGS. Максимальное количество параметров - 92).
    • Результат функции равен значению $RESULT при возврате строкового значения или RESULT при возврате числового значения.
    • Если при обработке локации были установлены и RESULT, и $RESULT, то предпочтение отдаётся строковому значению.
    • После обработки локации предыдущие значения ARGS и RESULT восстанавливаются.
    • Внимание: при использовании в коде [$код] операторов GS/DYNAMIC переменные RESULT и $RESULT могут перезаписываться кодом, выполняемым этими операторами.
      • Исправлено в более новых версиях интерпретатора.
    • Примеры:
      DYNEVAL('result = 3+4')
      PL DYNEVAL('$result = mid("abcd",2,1)+"qwerty"')
      PL DYNEVAL($test + ' + val("<<$test>>")')
      проход=DYNEVAL("result = ($args[0] <> 'текст')", 'строка')
      
  • Фигурные скобки - третий вид кавычек используемый специально для написания динамического кода
    • Поддерживается вложенность скобок
    • Примеры:
      $somecode={ 
        p 'sdasdasd' 
        er=3454 
        $d='sdsd' 
        'asdad' 
        if args[0]=23:pl 'asdasdasd' 
      } 
      
      dynamic $somecode, 23
      

Вперёд: Основное окно описания

1) 10 включая код
2) 10 включая имя локации
help/dynamical.1385061533.txt.gz · Последние изменения: 2013/11/21 23:18 (внешнее изменение)