다음: 함수 잠그기, 이전: 안긴 함수, 상위 문서: 함수 기록철   [차례][찾아보기]


11.9.5 과적재와 자동 적재

다양한 입력 매개변수와 작업하기 위하여 함수를 과적할 수 있습니다. 예를 들어, 연산자 ’+’는 단정도, 배정도, uint8, int32와 다양한 다른 매개변수와 작업하기 위하여 과적할 수 있습니다. 함수를 과적하는 좋은 방법은 분류 지향적 또는 객체 지향적 풀그림을 짜는 것(함수 과적재 참고)입니다. 그러나 가끔은 사용자 과적 대신 특정 형식과 관련한 기본 함수를 호출하여야 하는 일이 있습니다. builtin 함수가 이 역할을 합니다.

[…] = builtin (f, …)

주어진 형식 특징으로 f가 과적되어 있어도, 기본 함수 f를 호출합니다.

객체 지향 풀그림 짜기에 있어, 이는 보통 쓸모있으며, 새 분류 중 하나를 과적하는 것보다 옥타브의 기본 함수를 호출하는 것이 필요합니다.

sin 함수를 cos 함수로 다시 정의하는 조그마한 예시가 builtin의 작동 방식을 보여줍니다.

sin (0)
  ⇒ 0
function y = sin (x), y = cos (x); endfunction
sin (0)
  ⇒ 1
builtin ("sin", 0)
  ⇒ 0

단일 동적 연결 기록철은 여러 함수를 정의할 수 있습니다. 그러나 함수의 기록철 이름에 의존하여 함수를 찾는 경우에, 옥타브에는 동적 연결 기록철에서 각 함수를 찾는 방법이 필요합니다. 운영 체제가 상징 연결을 지원하면, 각 함수가 담긴 원본 기록철에 상징 연결을 이을 수 있습니다.

그러나 상징 연결을 지원하지 않는 운영 체제가 꼭 하나씩은 있습니다. 함수가 담긴 원본 기록철을 복사하는 것은 옥타브가 기억 장치에서 차지하는 공간만 늘려 바람직하지 않습니다. 대신 옥타브는 사용자가 특정 함수가 담긴 기록철을 정의하는 autoload 함수를 제공합니다.

자동_적재_지도 = autoload ()
autoload (함수, 기록철)
autoload (…, "remove")

기록철함수의 자동 적재를 정의합니다.

두 번째 매개변수인 기록철은 절대 경로 또는 이 명령이 동작하는 함수나 대본과 같은 자료방에 있는 기록철 이름이어야 합니다. 기록철은 옥타브 적재 경로와 무관합니다.

옥타브의 적재 경로에 자료방이 추가되었을 때 평가되는 PKG_ADD 기록철에서 주로 autoload를 호출합니다. 기록철에 있는 자료방 이름을 수정하기 어렵게 하지 않기 위하여, 기록철과 똑같은 자료방에 PKG_ADD 대본에 있으면,

autoload ("foo", "bar.oct");

bar.oct에서 함수 foo를 적재합니다. bar.oct이 같은 자료방에 없으면, 위 용법은 못쓸 것이고,

autoload ("foo", file_in_loadpath ("bar.oct"))

위 용법도 작동을 예측하기 어렵기 때문에 쓸 것이 못됩니다.

매개변수 없이 호출하면, 현재 자동 적재 지도를 담은 구조체를 반환합니다.

세 번째 매개변수 "remove"를 주면, 함수를 지우고, 현재 옥타브 작업에서 더 이상 아무 것도 적재하지 않습니다.

같이 보기: PKG_ADD.


다음: 함수 잠그기, 이전: 안긴 함수, 상위 문서: 함수 기록철   [차례][찾아보기]