diff options
Diffstat (limited to 'modules/std')
-rw-r--r-- | modules/std/base64.qs | 15 | ||||
-rw-r--r-- | modules/std/event.qs | 42 | ||||
-rw-r--r-- | modules/std/init.qs | 2 | ||||
-rw-r--r-- | modules/std/singleton.qs | 23 | ||||
-rw-r--r-- | modules/std/stack.qs | 20 |
5 files changed, 102 insertions, 0 deletions
diff --git a/modules/std/base64.qs b/modules/std/base64.qs new file mode 100644 index 0000000..d14dbbc --- /dev/null +++ b/modules/std/base64.qs @@ -0,0 +1,15 @@ +class Base64 { + static func encode(str) { + + } + + static func decode(str) { + + } +} + +/* +var base64 = Base64.encode("asasdadqweqwe12312"); + + +*/
\ No newline at end of file diff --git a/modules/std/event.qs b/modules/std/event.qs new file mode 100644 index 0000000..d4f2a10 --- /dev/null +++ b/modules/std/event.qs @@ -0,0 +1,42 @@ +import debug for debug; + +class event { + func init() { + self._func = []; // callback functions list + } + + func clear() { + self._func.clear(); + } + + func += (fn) { + if(typeof(fn) != "function") + debug.assert("wrong type"); + if(!self._func.contains(fn)) + self._func.push(fn); + else + debug.logError("已经存在这个方法"); + } + + func -= (fn) { + if(typeof(fn) != "function") + debug.assert("wrong type"); + self._func.remove(fn); + } + + func () (...){ + foreach(var fn in self._func) { + fn(...); + } + } +} + +/* +var Say = new event(); +Say += func(str) { + io.print(str); +} +Say("hi"); +Say.clear(); + +*/
\ No newline at end of file diff --git a/modules/std/init.qs b/modules/std/init.qs new file mode 100644 index 0000000..fd4327d --- /dev/null +++ b/modules/std/init.qs @@ -0,0 +1,2 @@ +import "base64.qs" ; + diff --git a/modules/std/singleton.qs b/modules/std/singleton.qs new file mode 100644 index 0000000..afade4b --- /dev/null +++ b/modules/std/singleton.qs @@ -0,0 +1,23 @@ + +class Singleton { + static func get() { + if( type._instance == null ) { + type._instance = new type(); + } + return type._instance; + } +} + +/* +Usage: + +class SoundManager is Singleton { + func init() { + + } +} + +var mgr = SoundManager.get(); + +//type is upvalue\preset value, like self +*/
\ No newline at end of file diff --git a/modules/std/stack.qs b/modules/std/stack.qs new file mode 100644 index 0000000..4151e39 --- /dev/null +++ b/modules/std/stack.qs @@ -0,0 +1,20 @@ +class Stack { + func init() { + self._stack = []; + } + + func push(element) { + self._stack.push(element); + } + + func pop() { + self._stack.pop(); + } + + func size() { + + } +} + + + |