代码拉取完成,页面将自动刷新
同步操作将从 hinus/pythonvm 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef HI_DICT_HPP
#define HI_DICT_HPP
#include "object/hiObject.hpp"
#include "util/map.hpp"
class DictKlass : public Klass {
private:
DictKlass();
static DictKlass* instance;
public:
static DictKlass* get_instance();
void initialize();
virtual HiObject* getattr(HiObject* x, HiString* y);
virtual HiObject* subscr (HiObject* x, HiObject* y);
virtual HiObject* iter(HiObject* x);
virtual void print(HiObject* obj);
virtual void store_subscr(HiObject* x, HiObject* y, HiObject* z);
virtual void del_subscr (HiObject* x, HiObject* y);
virtual HiObject* allocate_instance(HiObject* callable,
ArrayList<HiObject*>* args);
virtual size_t size();
virtual void oops_do(OopClosure* f, HiObject* obj);
};
class HiDict : public HiObject {
friend class DictKlass;
private:
Map<HiObject*, HiObject*>* _map;
public:
HiDict();
HiDict(Map<HiObject*, HiObject*>* map);
Map<HiObject*, HiObject*>* map() { return _map; }
void put(HiObject* k, HiObject* v) { _map->put(k, v); }
HiObject* get(HiObject* k) { return _map->get(k); }
bool has_key(HiObject* k) { return _map->has_key(k); }
int size() { return _map->size(); }
HiObject* remove(HiObject* k) { return _map->remove(k); }
void update(HiDict* d);
};
HiObject* dict_set_default(ObjList args);
HiObject* dict_remove(ObjList args);
HiObject* dict_keys(ObjList args);
HiObject* dict_values(ObjList args);
HiObject* dict_items(ObjList args);
HiObject* dict_iterkeys(ObjList args);
HiObject* dict_itervalues(ObjList args);
HiObject* dict_iteritems(ObjList args);
enum ITER_TYPE {
ITER_KEY = 0,
ITER_VALUE,
ITER_ITEM
};
template<ITER_TYPE n>
class DictIteratorKlass : public Klass {
private:
static DictIteratorKlass* instance;
DictIteratorKlass();
public:
static DictIteratorKlass* get_instance();
virtual HiObject* iter(HiObject* x) { return x; }
virtual HiObject* next(HiObject* x);
};
class DictIterator : public HiObject {
private:
HiDict* _owner;
int _iter_cnt;
public:
DictIterator(HiDict* owner);
HiDict* owner() { return _owner; }
int iter_cnt() { return _iter_cnt; }
void inc_cnt() { _iter_cnt++; }
};
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。