Rework for loops to use iterators, requiring pairs or ipairs function to handle multi-assignment

This commit is contained in:
2018-11-24 14:35:23 +01:00
parent c63df3c941
commit 13ac6f2754
10 changed files with 132 additions and 16 deletions

View File

@@ -1,5 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Upsilon.BaseTypes.Number;
using Upsilon.BaseTypes.ScriptTypeInterfaces;
using Upsilon.Evaluator;
using Upsilon.Text;
@@ -51,9 +53,18 @@ namespace Upsilon.BaseTypes.UserData
return List.GetType();
}
public IEnumerator<(string Key, ScriptType value)> GetEnumerator()
public ScriptType GetValueFromIndex(ScriptType index)
{
throw new System.NotImplementedException();
var num = (ScriptNumberLong)index;
return List[(int) num.Value].ToScriptType();
}
public IEnumerator<ScriptType> GetEnumerator()
{
for (int i = 0; i < List.Count; i++)
{
yield return new ScriptNumberLong(i);
}
}
}
}