보통 간단하게 옥타브 명령 처리기에 표현식을 타자하거나 기록철에 저장한 명령을 옥타브에 넣어 평가합니다.
가끔은
eval
함수가 행하는 것처럼 이미 계산하여 문자열에 담긴 표현식을 풀어야 할 때가 있습니다.
문자열 시도를 구문 분석하고 옥타브 풀그림처럼 평가합니다.
실행에 실패하면, 선택 문자열인 예비를 실행합니다.
문자열 시도를 현재 문맥에서 실행하여 eval
가 반환한 후 모든 결과가 남습니다.
아래 예시는 현재 작업 공간에서 변수 A를 근사치 3.1416로 만듭니다.
eval ("A = acos(-1);");
시도를 평가하는 동안 오류가 발생하면, 아래 예시가 보여주는 것과 같이 예비 문자열 풉니다.
eval ('error ("This is a bad example");', 'printf ("This error occurred:\n%s\n", lasterr ());'); -| This error occurred: This is a bad example
풀그림 짜기 안내: 임의의 부호 문자열을 실행하는 대신 eval
을 오류 색출 과정으로만 사용하려면,
시도/예비 덩어리나 unwind_protect/unwind_protect_cleanup 덩어리를 대신 사용하여 보십시오. 이 요령이 더 빠르며,
임의 부호를 실행하는 데에 발생하는 보안 고려 사항을 안내하지 않습니다.
evalc
함수는 추가로 표현식을 풀 때 나온 조종대 출력을 모두 잡아냅니다.
문자열 시도를 옥타브 풀그림처럼 구문 분석하고 평가하며, 반환 변수 s에 출력을 잡아넣습니다.
실행에 실패하면, 선택 문자열인 예비를 실행합니다.
이 함수는 eval
과 비슷하게 작동하지만, 보통 조종대에 나오는 모든 출력과 경고 문구를 문자열 s에
집어넣습니다.
이 함수를 실행하는 동안에 diary
는 비활성화 됩니다.
system
을 사용하면, system
함수가 자체적으로 잡는 경우 외에는 외부 풀그림이 만든
출력을 잡지 않습니다.
s = evalc ("t = 42"), t ⇒ s = t = 42 ⇒ t = 42
• 이름으로 함수 호출: | ||
• 다른 문맥에서 평가: |