Skip to content

Commit 53ae221

Browse files
committed
Merge branch 'main' of https://github.com/JomiXedYu/JxCode.LuaSharp into main
2 parents 79984bb + 0f0192a commit 53ae221

File tree

6 files changed

+58
-46
lines changed

6 files changed

+58
-46
lines changed

SysLib/Collections/Dictionary.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ function Dictionary:Remove(key)
4444
end
4545

4646
function Dictionary:Clear()
47-
for _, key in ipairs(self.m_index) do
48-
self:Remove(key)
49-
end
47+
self.m_count = 0
48+
self.m_dict = {}
49+
self.m_index = {}
5050
end
5151

5252
---@return number

SysLib/Collections/List.lua

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-------------------ModuleInfo-------------------
22
--- Author : jxy
33
--- Date : 2020/02/16 00:00
4-
--- Description : 数组封装类,可以用lua迭代器访问
4+
--- Description : 数组封装类
55
--- https://github.com/JomiXedYu/JxCode.LuaSharp
66
------------------------------------------------
77
---@class SysLib.Collections.List : SysLib.Object
@@ -21,8 +21,8 @@ function List:Add(item)
2121
self.m_arr[self.m_count] = item
2222
end
2323

24-
function List:AddRange(ienumerator)
25-
for item in each(ienumerator) do
24+
function List:AddRange(enumerable)
25+
for item in each(enumerable) do
2626
self:Add(item)
2727
end
2828
end
@@ -49,6 +49,7 @@ function List:Clear()
4949
for i = 1, self.m_count do
5050
self.m_arr[i] = nil
5151
end
52+
self.m_count = 0
5253
end
5354

5455
---@return boolean

Test/Container/DictionaryTest.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,4 @@ assert(e3 == 6)
4242
dict:Remove("user2")
4343
assert(dict:GetCount() == 2)
4444
dict:Clear()
45+
assert(dict:GetCount() == 0)

Test/Container/ListTest.lua

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,51 @@
11

22
local list = List.New()
3-
list:Add("item1")
4-
list:Add("item2")
3+
list:Add("i1")
4+
list:Add("i2")
55
list:Add(nil)
6-
list:Add("item3")
7-
8-
assert(list:GetCount() == 4)
6+
list:AddTableRange({"i3", "i4"})
7+
assert(list:GetCount() == 5)
98

109
--可以使用三种遍历方式
1110

1211
-- 1.ForEach方法
13-
Console.WriteLine("ForEachMemberFunction:")
12+
local it1 = ""
1413
list:ForEach(function(item)
15-
Console.WriteLine(item)
14+
if not item then
15+
it1 = it1.."nil"
16+
else
17+
it1 = it1..item
18+
end
1619
end)
20+
assert(it1 == "i1i2nili3i4")
1721

1822
-- 2.迭代器
19-
Console.WriteLine("Enumerator:")
23+
local it2 = ""
2024
for index, value in list:GetEnumerator() do
21-
Console.WriteLine(value)
25+
if not value then
26+
it2 = it2.."nil"
27+
else
28+
it2 = it2..value
29+
end
2230
end
31+
assert(it2 == "i1i2nili3i4")
2332

2433
-- 3.或者使用each
25-
Console.WriteLine("Each:")
34+
local it3 = ""
2635
for index, value in each(list) do
27-
Console.WriteLine(value)
36+
if not value then
37+
it3 = it3.."nil"
38+
else
39+
it3 = it3..value
40+
end
2841
end
42+
assert(it3 == "i1i2nili3i4")
2943

30-
Console.WriteLine("item2 IndexOf:", list:IndexOf("item2")) -- 2
31-
Console.WriteLine("item4 IndexOf:", list:IndexOf("item4")) -- -1
44+
assert(list:IndexOf("i2") == 2)
45+
assert(list:IndexOf("i4") == 5)
46+
assert(list:IndexOf("i5") == -1)
3247

33-
--使用GetCount或#获得数量
3448
list:RemoveAt(2)
35-
Console.WriteLine("RemoveAt:", list:GetCount())
36-
list:Clear()
49+
assert(list:GetCount() == 4)
50+
list:Clear()
51+
assert(list:GetCount() == 0)

Test/Container/QueueTest.lua

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
local queue = Queue.New()
22

3-
queue:Enqueue("value1")
4-
queue:Enqueue("value2")
5-
queue:Enqueue("value3")
3+
queue:Enqueue("v1")
4+
queue:Enqueue("v2")
65

7-
Console.WriteLine("Count:", queue:GetCount())
6+
assert(queue:GetCount() == 2)
87

8+
local it = ""
99
queue:ForEach(function(item)
10-
Console.WriteLine("item: ", item)
10+
it = it .. item
1111
end)
1212

13-
Console.WriteLine("Peek:", queue:Peek())
13+
assert(it == "v1v2")
1414

15-
Console.WriteLine("Dequeue:", queue:Dequeue())
16-
Console.WriteLine("Dequeue:", queue:Dequeue())
17-
18-
Console.WriteLine("Count:", queue:GetCount())
15+
assert(queue:Peek() == "v1")
16+
assert(queue:Dequeue() == "v1")
17+
assert(queue:Peek() == "v2")
18+
assert(queue:GetCount() == 1)
1919

2020
queue:Clear()
21-
Console.WriteLine("Clear:", queue:GetCount())
21+
assert(queue:GetCount() == 0)

Test/Container/StackTest.lua

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
local stack = Stack.New()
22

3-
stack:Push("one")
4-
stack:Push("two")
5-
stack:Push("three")
3+
stack:Push("v1")
4+
stack:Push("v2")
65

6+
assert(stack:GetCount() == 2)
77

8-
Console.WriteLine("Count:", stack:GetCount())
9-
10-
Console.WriteLine("Peek:", stack:Peek())
11-
12-
Console.WriteLine("Pop:", stack:Pop())
13-
Console.WriteLine("Pop:", stack:Pop())
14-
15-
Console.WriteLine("Count:", stack:GetCount())
8+
assert(stack:Peek() == "v2")
9+
assert(stack:Pop() == "v2")
10+
assert(stack:Peek() == "v1")
11+
assert(stack:GetCount() == 1)
1612

1713
stack:Clear()
18-
19-
Console.WriteLine("Clear:", stack:GetCount())
14+
assert(stack:GetCount() == 0)

0 commit comments

Comments
 (0)