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

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


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

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]
      ",'Текст','Вилка'
      
  • DYNEVAL([$код],[параметр 1],[параметр 2], …) - выполнение кода [$код] аналогично оператору FUNC, но код выполняется из строки.
    • Переданные параметры хранятся в массиве ARGS. Максимальное количество параметров - 92).
    • Результат функции равен значению $RESULT при возврате строкового значения или RESULT при возврате числового значения.
    • Если при обработке локации были установлены и RESULT, и $RESULT, то предпочтение отдаётся строковому значению.
    • После обработки локации предыдущие значения ARGS и RESULT восстанавливаются.
    • Внимание: при использовании в коде [$код] операторов GS/DYNAMIC переменные RESULT и $RESILT могут перезаписываться кодом, выполняемым этими операторами.
      • Исправлено в более новых версиях интерпретатора.
    • Примеры:
      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.1383736860.txt.gz · Последние изменения: 2013/11/06 15:21 (внешнее изменение)