fix #10 set
+collection functions (map, forEach, toList, toSet, isEmpty, etc,)
This commit is contained in:
1 parent
8a4363bd84
commit
a4448ab2ff
18 files changed
+467
-146
No files matched your search
+20
-9
@@ -1,13 +1,17 @@
|
||||
# Iterable interface
|
||||
|
||||
The inteface which requires iterator to be implemented:
|
||||
Iterable is a class that provides function that creates _the iterator_:
|
||||
|
||||
fun iterator(): Iterator
|
||||
class Iterable {
|
||||
abstract fun iterator()
|
||||
}
|
||||
|
||||
Note that each call of `iterator()` must provide an independent iterator.
|
||||
|
||||
Iterator itself is a simple interface that should provide only to method:
|
||||
|
||||
interface Iterable {
|
||||
fun hasNext(): Bool
|
||||
class Iterator {
|
||||
abstract fun hasNext(): Bool
|
||||
fun next(): Obj
|
||||
}
|
||||
|
||||
@@ -15,19 +19,26 @@ Just remember at this stage typed declarations are not yet supported.
|
||||
|
||||
Having `Iterable` in base classes allows to use it in for loop. Also, each `Iterable` has some utility functions available:
|
||||
|
||||
## Instance methods
|
||||
|
||||
fun Iterable.toList(): List
|
||||
fun Iterable.toSet(): Set
|
||||
fun Iterable.indexOf(element): Int
|
||||
fun Iterable.contains(element): Bool
|
||||
fun Iterable.isEmpty(element): Bool
|
||||
fun Iterable.forEach(block: (Any?)->Void ): Void
|
||||
fun Iterable.map(block: (Any?)->Void ): List
|
||||
|
||||
|
||||
## Abstract methods
|
||||
|
||||
fun iterator(): Iterator
|
||||
|
||||
## Instance methods
|
||||
|
||||
### toList()
|
||||
|
||||
Creates a list by iterating to the end. So, the Iterator should be finite to be used with it.
|
||||
|
||||
## Included in interfaces:
|
||||
|
||||
- Collection, Array, [List]
|
||||
- [Collection], Array, [List]
|
||||
|
||||
## Implemented in classes:
|
||||
|
||||
|
||||
Reference in new issue
Block a user