var persons: List<Person> = readPersonsFile("persons.txt");
ListSort.sort(persons, function(personA, personB): Int
{
return Person.compare(personA.first(), personB.first());
});
我只是想对此列表进行排序。它给了我这个错误:
Constraint check failure for sort.T
List<Person> should be { prev : List<Person>, next : List<Person> }
List<Person> has no field next
这对我来说很奇怪,因为听起来它希望我传递一个带有两个不同列表的隐式对象,如果确实是这样的话......如果这是真的,那就不是很绝缘。
最佳答案
ListSort
只有supposed to work在单链表或双向链表上; List
class 都不是这些(尽管它确实与它们共享一些 API,但时间和空间成本不同)。
就您而言,您可能可以更改 readPersonsFile
返回 Array
或haxe.ds.GenericStack
,并使用 persons.sort(cmp)
或ListSort.sortSingleLinked(persons.head, cmp)
.
此外,如有必要,您可以轻松转换任何可迭代对象 - 即具有 iterator:Void->Iterator<T>
的任何对象。方法 – 放入 Lambda.array(iterable)
的数组中.
documentation T
缺乏必要的约束参数。这是文档生成器中的一个错误,我将尽快报告。
关于Haxe,ListSort.sort() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41756385/