Swift is quite a flexible language, providing you with many tools to modify and augment it as you seem fit. One of these augmentations is the support for custom or overloaded operators.
Setting variables at build-time can provide valuable metadata to our application that wasn’t available when writing the code or even at runtime. We can control feature-flags, or build information, like a version number, without updating the Go-code constantly.
Even though interfaces and abstract classes have many similarities at first look, especially after introducing default methods, they have different use-cases and capabilities.
Java has multiple types for traversing elements of a source. My last article showed how java.util.Iterator<T> and java.util.ListIterator<T> can be used to traverse data structures like Collections. The concept of iterators is supported since Java 1.2, but got a new relative, java.util.Spliterator<T>, in Java 8.
Iterating data structures is one of the most common tasks. Everyone knows the classics, like for or while. But there are more ways to iterate in Java, providing a lot more functionality.