当前位置: 首页>>代码示例>>C++>>正文


C++ ASObject::has_toString方法代码示例

本文整理汇总了C++中ASObject::has_toString方法的典型用法代码示例。如果您正苦于以下问题:C++ ASObject::has_toString方法的具体用法?C++ ASObject::has_toString怎么用?C++ ASObject::has_toString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ASObject的用法示例。


在下文中一共展示了ASObject::has_toString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if

ASFUNCTIONBODY(JSON,_stringify)
{
	_NR<ASObject> value;
	ARG_UNPACK(value);
	std::vector<ASObject *> path;
	tiny_string filter;
	IFunction* replacer = NULL;
	if (argslen > 1 && !args[1]->is<Null>() && !args[1]->is<Undefined>())
	{
		if (args[1]->is<IFunction>())
		{
			replacer = args[1]->as<IFunction>();
		}
		else if (args[1]->is<Array>())
		{
			filter = " ";
			Array* ar = args[1]->as<Array>();
			for (uint64_t i = 0; i < ar->size(); i++)
			{
				filter += ar->at(i)->toString();
				filter += " ";
			}
		}
		else
			throwError<TypeError>(kJSONInvalidReplacer);
	}

	tiny_string spaces = "";
	if (argslen > 2)
	{
		ASObject* space = args[2];
		spaces = "          ";
		if (space->is<Number>() || space->is<Integer>() || space->is<UInteger>())
		{
			int32_t v = space->toInt();
			if (v < 0) v = 0;
			if (v > 10) v = 10;
			spaces = spaces.substr_bytes(0,v);
		}
		else if (space->is<Boolean>() || space->is<Null>())
		{
			spaces = "";
		}
		else
		{
			if(space->has_toString())
			{
				_R<ASObject> ret = space->call_toString();
				spaces = ret->toString();
			}
			else
				spaces = space->toString();
			if (spaces.numBytes() > 10)
				spaces = spaces.substr_bytes(0,10);
		}
	}
	tiny_string res = value->toJSON(path,replacer,spaces,filter);

	return Class<ASString>::getInstanceS(res);
}
开发者ID:netroby,项目名称:lightspark,代码行数:60,代码来源:JSON.cpp


注:本文中的ASObject::has_toString方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。