Closures, methods, static methods, class methods

Everything you ever wondered about closures, and a few things more: Closures: just what are closures? Closures as code, packaged with parameters Methods as closures: Python Methods as closures: Kotlin Static Methods class level methods/companion object methods Closures: just what are closures? Lets start with an example, and then discuss how it works. The function… Continue reading Closures, methods, static methods, class methods

OOP: Using Kotlin to improve OOP Skills

Ok, Object Oriented Programming (OOP)is not exactly new, and there are lots of pages on OOP on the web.  This page comes from a background of both Python and Kotlin, and how improved programming styles offered by Kotlin can change how you program.  Although Kotlin automates newer techniques and provides assistance coding, you can 'backport'… Continue reading OOP: Using Kotlin to improve OOP Skills

self, this + modifiers: private, public, protected, internal, open, final, inline

contents: self vs this this@ external attribute access why bother? python modifiers visibility inheritance: open, final, override inline self vs this Self vs this are not technically modifiers, but they do work in a similar way, to modify that 'self.name' can be different from 'name'. Code inside a class must work without an actual instance… Continue reading self, this + modifiers: private, public, protected, internal, open, final, inline

Python to Kotlin: Variables and Types

Contents: python kotlin boxed objects vs unboxed primitives None, Nothing, Unit and null null safety Python Variables and Types As explained in the background, all values in python are objects stored in dynamic 'heap' memory, and variables are simply references to these objects. This means the only static or stack frame based information for any… Continue reading Python to Kotlin: Variables and Types

Nullable, null, None, Unit, Nothing and void: the many faces of nothing

Python has only one way of saying 'there is nothing here':  None.  Java has the keyword 'void' and the value 'null', kotlin has Unit, Nothing and null.  What is the actual difference in meaning for all of these? Python None Kotlin Unit, null and Nothing Java void and null The concept of 'Nullable' Null Safety… Continue reading Nullable, null, None, Unit, Nothing and void: the many faces of nothing

Extension Functions & Extension Properties

The syntax and rules of extension functions are explained also explained elsewhere,  but this page is more tutorial style, covers the background and  'why do we need extensions'  and 'what is the benefit',  together with simple examples, and even useful examples. The topics are: What are extension functions/properties? What is the advantage of extension functions?… Continue reading Extension Functions & Extension Properties

Class data: Getters, Setters & Properties

Data: fields vs properties Boilerplate Getters and Setters Cutting the boilerplate, and the impact Beyond the boilerplate for getters and setters Data: fields vs properties Classes have both functions called methods and instance data or  fields. Python also uses the term properties, for data that has an explicit getters function and optionally setter a setter… Continue reading Class data: Getters, Setters & Properties