本篇文章给大家谈谈Lua的function、closure和upvalue,以及luafunction的知识点,同时本文还将给你拓展angular-cli项目报Errorencounteredreso
本篇文章给大家谈谈Lua的function、closure和upvalue,以及lua function的知识点,同时本文还将给你拓展angular-cli 项目报 Error encountered resolving symbol values statically. Function calls are not suppor...、antd 踩坑:value.locale is not a function、Cocos2d-x结构学习(十二)CCMoveBy、CCActionInterval、CCFiniteTimeAction、CCCallFunc、CC_SAFE_RETAIN、CCActionInst、FP - Pure function vs. Closure等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- Lua的function、closure和upvalue(lua function)
- angular-cli 项目报 Error encountered resolving symbol values statically. Function calls are not suppor...
- antd 踩坑:value.locale is not a function
- Cocos2d-x结构学习(十二)CCMoveBy、CCActionInterval、CCFiniteTimeAction、CCCallFunc、CC_SAFE_RETAIN、CCActionInst
- FP - Pure function vs. Closure
Lua的function、closure和upvalue(lua function)
angular-cli 项目报 Error encountered resolving symbol values statically. Function calls are not suppor...
安装同事打包的一个模块,报了这么个错,不过在其他地方使用是正常的。
Error encountered resolving symbol values statically. Function calls are not supported.
解决的办法
在 tsconfig.json 文件中添加
{
...
"compilerOptions": {
..
"skipLibCheck": true,
"noStrictGenericChecks": false,
"paths": {
"@angular/*": ["../node_modules/@angular/*"],
...
}
},
"exclude": [
...
]
}
antd 踩坑:value.locale is not a function
这个问题来源于日期选择器 RangerPicker 的特殊情况。
<Col span={7} key={9}>
<FormItem label="投运时间" {...formItemLayout2}>
{getFieldDecorator(''tysj'', {
initialValue: [undefined, moment().endOf(''month'')],
rules: [
{
required: false,
message: ''投运时间!'',
},
],
})(<RangerPicker style={{ width:''100%''}} format="YYYY-MM-DD" allowClear={true} />)}
</FormItem>
</Col>
有时我们希望默认值一边有范围,一边没有范围。
比如 几月几号之前。
那么在表单赋值的时候,原先写的是:
initialValue: ['''', moment().endOf(''month'')],
但是这样会导致清除时报错:
value.locale is not a function
而只要改成:
initialValue: [undefined, moment().endOf(''month'')],
就可以了。
Cocos2d-x结构学习(十二)CCMoveBy、CCActionInterval、CCFiniteTimeAction、CCCallFunc、CC_SAFE_RETAIN、CCActionInst
1、CCMoveBy:移动动作,继承自CCActionInterval
class CC_DLL CCMoveBy : public CCActionInterval { public: bool initWithDuration(float duration,const CCPoint& deltaPosition); //初始化序列 virtual CCObject* copyWithZone(CCZone* pZone); virtual void startWithTarget(CCNode *pTarget); //开始目标 virtual CCActionInterval* reverse(void); virtual void update(float time); //更新 public: static CCMoveBy* create(float duration,const CCPoint& deltaPosition); protected: CCPoint m_positionDelta; CCPoint m_startPosition; CCPoint m_prevIoUsPosition; };2、CCActionInterval:动作间隔类,继承自CCFiniteTimeAction
class CC_DLL CCActionInterval : public CCFiniteTimeAction { public: inline float getElapsed(void) { return m_elapsed; } //获取从动作开始到目前已逝去的秒 bool initWithDuration(float d); //初始化动作 virtual bool isDone(void); //判断动作是否运行完成 virtual CCObject* copyWithZone(CCZone* pZone); virtual void step(float dt); virtual void startWithTarget(CCNode *pTarget); /** returns a reversed action */ virtual CCActionInterval* reverse(void); public: static CCActionInterval* create(float d); public: void setAmplitudeRate(float amp); //设置和获得扩展 float getAmplitudeRate(void); protected: float m_elapsed; bool m_bFirstTick; };3、CCFiniteTimeAction:有限时间动作,继承自CCAction
class CC_DLL CCFiniteTimeAction : public CCAction { public: CCFiniteTimeAction() : m_fDuration(0) {} virtual ~CCFiniteTimeAction(){} inline float getDuration(void) { return m_fDuration; } //设置和获得持续时间 inline void setDuration(float duration) { m_fDuration = duration; } virtual CCFiniteTimeAction* reverse(void); //返回一个倒退序列 protected: float m_fDuration; };4、CCCallFunc:动作回调函数处理类,继承自CCActionInstant
class CC_DLL CCCallFunc : public CCActionInstant { public: CCCallFunc() : m_pSelectorTarget(NULL),m_nScriptHandler(0),m_pCallFunc(NULL) { } virtual ~CCCallFunc(); static CCCallFunc * create(CCObject* pSelectorTarget,SEL_CallFunc selector); //创建和初始化相关函数 static CCCallFunc * create(int nHandler); virtual bool initWithTarget(CCObject* pSelectorTarget);
virtual void execute(); //执行 virtual void update(float time); //更新 CCObject * copyWithZone(CCZone *pZone);
inline CCObject* getTargetCallback() //设置和获得回调对象 { return m_pSelectorTarget; } inline void setTargetCallback(CCObject* pSel) { if (pSel != m_pSelectorTarget) { CC_SAFE_RETAIN(pSel); CC_SAFE_RELEASE(m_pSelectorTarget); m_pSelectorTarget = pSel; } } inline int getScriptHandler() { return m_nScriptHandler; }; //得到脚本句柄 protected: CCObject* m_pSelectorTarget; int m_nScriptHandler; union { SEL_CallFunc m_pCallFunc; SEL_CallFuncN m_pCallFuncN; SEL_CallFuncND m_pCallFuncND; SEL_CallFuncO m_pCallFuncO; }; };5、CC_SAFE_RETAIN:这个宏有意思,搞个一次循环
#define CC_SAFE_RETAIN(p) do { if(p) { (p)->retain(); } } while(0)6、CCActionInstant:立即动作类,继承自CCFiniteTimeAction,比较简陋
class CC_DLL CCActionInstant : public CCFiniteTimeAction { public: CCActionInstant(); virtual ~CCActionInstant(){} virtual CCObject* copyWithZone(CCZone *pZone); virtual bool isDone(void); virtual void step(float dt); virtual void update(float time); virtual CCFiniteTimeAction * reverse(void); };
FP - Pure function vs. Closure
闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。
定义:闭包名称源自于通过 “捕获” 自由变量的绑定,从而对函数字面量执行的 “关闭” 行动。不带自由变量的函数字面量,如:(x:Int) => x + 1,被称为封闭项(closed term),这里项(term)指的是一小部分源代码。因此依照这个函数字面量在运行时创建的函数值严格意义上来讲就不是闭包,因为 (x:Int) => x + 1 在编写的时候就已经封闭了。但任何带有自由变量的函数字面量,如:(x:Int) => x + more,都是开放项(open term)。因此,任何以 (x:Int) => x + more 为模板在运行期创建的函数值将必须捕获对自由变量 more 的绑定。因此得到的函数值将包含指向捕获的 more 变量的索引。又由于函数值是关闭这个开放项 (x:Int) => x + more 行动的最终产物,因此被称为闭包。
1. 如 (x: Int) => x + 1 匿名函数,x 作为参数是已知的,整个表达式构成 封闭术语,函数在运行时就已经封闭的,根据引用透明的定义 (一个表达式可以被自身结果替代 [第一类值] 而不影响程式),而纯函数的定义是 —— 单例的引用透明表达式,所以不包含自由变量的函数就是纯函数。
2. 包含一个或多个自由变量,如 (x: Int) => x + more,其中 more 就是自由变量,more 只有在运行期才确定它的值,即惰性求值,由于函数值是关闭这个 [开放术语] (x: Int) => x + more 的行动的最终产物,得到的函数值将包含一个指向捕获的 more 变量的参考,因此被称为闭包。
关于Lua的function、closure和upvalue和lua function的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于angular-cli 项目报 Error encountered resolving symbol values statically. Function calls are not suppor...、antd 踩坑:value.locale is not a function、Cocos2d-x结构学习(十二)CCMoveBy、CCActionInterval、CCFiniteTimeAction、CCCallFunc、CC_SAFE_RETAIN、CCActionInst、FP - Pure function vs. Closure的相关知识,请在本站寻找。
本文标签: