lpc - types - general

MudOS v21c2

general


�����������ֵط�:

    ����ȫ�ֱ���������. ��������������.
    ������������������.
    ������������ľֲ���������
��ͨ�����, ������ȫ�������͵�����, ���������dz����˵��. ������������������Գ�����ѻ� (optimization) ʱ, ������� x�� Ϊ int (����) ����, �� x + 0�� ��Ϊ�� x�� ��ͬ. ���� x�� ����Ϊ string (�ַ���)�� ����ʱ, ����Ͳ�������ǰ��һ��. ��һ�������Ļ��������Ѿ�����ʱ, ���ں����ڲ�ǿ�ȼ���һ�����ϸ�����ͼ�� (strict type checking) . #pragma strict_types�� ǿ�Ⱥ��������з���ֵ (return value),�� �����޷����⺯���ڲ����ϸ����ͼ��. ������ʾ, һ��Ҫ�������в���������, ������ֻ�ܴ������������͵�ֵ. call_other() ��������Ϊ���� unknown (δ֪) ����ֵ, ��Ϊ�������򲻿���֪������ֵ������. ��������� CAST_CALL_OTHERS,�� �ͱ���ָ������ֵ, ����ͼ���������Ϊmixed�� (���) . ָ�� (cast) ����ֵ����, ���Խ��������Ʒ��� ( ) (С����) ����. ������ָ������û��ʲôʵ��Ч��, ֻ�ǰ�ο����������.

��������, ��ѯһ������ļ��:

    (string)call_other(ob, "short");
      ...��...
    (string)ob->short();
��һ���������ϸ����ͼ��ʱ, ֻ�ܵ��������Ѿ�����ĺ���. ���������δ����, �ͱ��������ú���ԭ�� (prototype)�� ʹĿǰ�ĺ����ܵ�������.

����ԭ�͵�����:

    string func(int arg);
ע��, ;�� (�ֺ�) �����˺���������. ���еIJ�������ָ������, ȴ������Ҫ��ʵ�ʵĺ�������ͬ��. Ҳ���Բ�д����������:
    string func(int);
���������ַ���: �������ͺ���������. һ�������������ֻ��ָ��һ�ֻ�������, ȴ����ָ�������������.

ֻ�б������õõ��ϸ����ͼ��, ִ��ʱ�� (runtime)�� ����. ����ʵ����, ����ʹ���ϸ����ͼ��, Ҳ������һ���ַ���������, ����һ������.

ΪʲôҪʹ���ϸ����ͼ�� ?�� ���ǻ��ǽ���������, ��Ϊ���������ڱ������ʱ�ҳ������ʡ���������ʱ��. ͨ����ִ��ʱ����׷��һ�������Ǻ����ѵ�.

�������ͷ�Ϊ����. �ֱ�Ϊ��ȡ����ֵ (value)�� ����ȡλַ (address). int, string, float ���ڴ�ȡ����ֵ������. �� mapping, function, object, pointer (ǰ���� * �ŵ�����) ����λַ. �����λַ���͵�ֵָ����һ������, ��������, ���ǻ�ָ����������������. Ҳ����˵, ����ı�һ�������Ԫ��ֵ, ������ָ�������ı���ָ��Ҳ��һ��ı�. ����Ҫ�ı�һ������Ĵ�С, һ��Ҫ�������� (allocate) һ���µ�����. �Ƚ������ (comparison operator)��==������ǰ���Ĵ�ȡ����ֵһ�������, ��Ƚ���������ֵ. ���Ƕ��� array, mapping �ȵ�, ֻ���������Ƿ�����ͬ�����顢ӳ��ȵ�. �ڴ���һ������Ҫ����ʾ��, ����ʽ: ({ 1 }) == ({ 1 })�� �����αֵ (false), ��Ϊʹ�� ({ ... })�� ��һ�����鹹������� (array construction operator-pair) , ������µ�����.


��������


int (����)
    ���� (32 bit).
float (������)
    ������ (32 bit).
string (�ַ���)
    ���� (unlimited)�� ���ַ��ַ��� (û�С�\0��).
object (���)
    һ�����ָ��.
mapping (ӳ��)
    һ������ (associative)�� �������ʽ; ��ο������ļ�.
function (����ָ��)
    һ�����������, ��ij�ַ�ʽָ��һ������; ��ο������ļ�.
Arrays (����)
    ��һ����������ǰ����� *�� ������������. Ʃ��˵, ����һ����������:
      int *arr;
    �����������һ����������� (�밴: ����Ԫ����) , Ҫʹ�� mixed�� (���) ����, ���� mixed�� ���������͵����.
void (�޷���ֵ)
    ��������ֻ�����ں���. �������û���κη���ֵ. ����˺����з���ֵ (�����ͼ��ʱ) , �������ͻᱧԹ.
mixed (���)
    �������ͺ�����, �������Ϳ���ʹ���κ����͵�����. �����κ�����Ϊ mixed (���) ���͵ı���������������, ����������������ı�Թ. ���ǻ�����͵�Ŀ�IJ����ڴ�. ֻ����һ����������������ͬ����������ʱ, ������ʹ�û������. �뾡������ʹ�ô�������, ��Ϊ��һ���������ز�ͬ���͵�ֵ, �Dz��õij���д��.

��������

��һЩ��������, ���Լ��ڻ�������֮ǰ. ��Щ�������Ϳ��Ի������. ��һ���̳���� (inherit statement)�� ֮ǰָ��ij����������, ��̳ж���������Ҳ��������������ͺϲ�. Ψһ�������� public�� (����) ����, ���������� private �̳���䶨��Ϊ private ����.
��
varargs (��������)

    �������͵ĺ������Դ��벻����Ŀ�IJ���. ���Ǵ����͵ĺ���, ���������ĸ���, �����Ŀ�������������.
private (˽��)
    �������ں����ͱ���. һ������е� private�� ����, �޷����� call_other() �������������֮. ���̳д�������������Ҳ�޷�ʹ�ô˺���.
static (��̬)
    �������������ñ����ͺ�������Ϊ��ò�̫һ��. �Ժ�����˵, ��Ч�������� private,�� �������Ҳ�޷����� call_other() ���ô˺���. static�� �������޷�ʹ�� save_object()�� ����, �� restore_object() ������ֵ.
public (����)
    ����Ϊ public ���͵ĺ������ܱ������������, �����Ǽ̳ж����� private ����Ҳ���Զ���Ϊ public.
nomask (�����ڸ�)
    �κζ���Ϊ nomask �ĺ��������, �����ܾ��ɼ̳��ٴ����¶���. ���ǿ�����ԭ���Ķ���ʹ��֮. nomask�� Ҳ��ֹ������ shadow() ͶӰ.

����: Spock @ FF 97.Aug.11.

�ص���һҳ