-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating

Programming Kotlin
By :

In Chapter 2, Kotlin Basics we briefly touched on the Kotlin type hierarchy. The notion of a Nothing
type was mentioned: A type that is the subtype of all other types, in a similar vein to how Any
is a superclass of all types. The idea of a Nothing
type is nothing new (pun intended) for those who have used a functional language, such as Scala. For those who are new to the idea, we will cover why such a type is useful.
The first use case is to indicate that a function would never complete normally. What we mean by normally is that it is not expected to return a value. It may intentionally perform an infinite loop, only ending when the process or thread is killed, or it may only return by throwing an exception. For example, the error
function defined in the Kotlin standard library has the following implementation:
inline fun error(message: Any): Nothing = throw IllegalStateException(message.toString())
The main use, however, is as a type parameter in variant types. If we have...