If you do not find what you're looking for, you can use more accurate words.
كتابة رمز TAB في سطر الأوامر سوف يجعل اوكتف يحاول أن يكمل كتابة اسم المتغير، الدالة أو الملف (مشابه لتكملة الاوامر في باش). اوكتف يستخم النص قبل المؤشر كمؤشر اولي على الاسم المراد اكماله.
اوكتف يحفظ الاوامر المكتبة في خزان داخلي عند تشغيله بصورة تفاعلية لكي يكون بالأمكان استرجاعها والتعديل عليها.
يتضمن اوكتف كمية محدودة من دعم تنظيم البيانات في الهياكل. مثلاً:
octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string"; octave:2> x.a x.a = 1 octave:3> x.b x.b = 1 2 3 4 octave:4> x.c x.c = string
مشغلات "||" و"&&" المنطقية في اوكتف تعمل بأسلوب الدائرة القصيرة (كما في مثيلاتها في لغة سي) عكس مشغلات "|" و"&".
تتضمن اوكتف مشغلات زيادة ونقصان مشابهة للموجودة في لغة سي وهما "++" و"--" في كلا من اشكالهم (قبل وبعد).
اوكتف يدعم شكلاً محدود من معالجة الاخطاء مبنية على نموذج "unwind-protect" في لغة ليسب، الشكل العام لهذا النموذج يكون كما في المثال الأتي:
unwind_protect body unwind_protect_cleanup cleanup end_unwind_protect
لدى اوكتف الية حقيقة لمعاملة الدوال التي تاخذ عدد غير محدد من المعطيات بدون حد أعلى واضح. يستخم المعطى الخاص المسمى varargin لتحديد قائمة تتألف من صفر إلى أكثر من المعطيات كالمعطى الأخير (أو الوحيد) في القائمة، مثال على ذلك:
functions =plus (varargin) if (nargin==0) s = 0; else s = varargin{1} + plus (varargin{2:nargin}); endif endfunction
بالإمكان استرجاع اي عدد من القيم في دالة ما عن طريق استخدام دالة الاسترجاع الخاصة varargout، على سبيل المثال:
functionvarargout =multiassign (data) for k=1:nargout varargout{k} = data(:,k); endfor endfunction
بالأمكان تنفيذ أوامر اوكتف في برنامج مكتوب بلغة سي++ بصورة مباشرة. في شفرة مصدرية صغيرة لأستدعاء rand)[9000,1]) على سبيل المثال:
#include <octave/oct.h> ... ColumnVector NumRands(2); NumRands(0) = 9000; NumRands(1) = 1; octave_value_list f_arg, f_ret; f_arg(0) = octave_value(NumRands); f_ret = feval("rand",f_arg,1); Matrix unis(f_ret(0).matrix_value());