swift-ui studies
Learning swift-ui
struct and classes
Both look pretty much the same having a similar syntax. Having both:
initializers (like constructores)
Differences:
| struct | class |
|———-|———|
| valeu type| reference type |
| copied when passed or assigned| passed arround via pointers |
| copy on write | automatically reference counted |
| functional programming | object-oriented programming |
| no inheritance | inheritance(single) |
| free init initializes All vars | free init initializes No vars |
| mutability must be explicitly stated | always mutable |
| your “go to” data structure | used in specific circumstances |
| everything is a struct (based on tuts) | the ViewModel in MVVM is always a class |
Generics
We use when we don’t really care what a type is, meaning when our type agnostic about our data structure. I.e: if we have an array of different types.
functions as types
You can declare a variable (or parameter to a func) to be of type function. The syntax includes the types of arguments and return value, you can do this anywhere any other type is allowed.
(Int, Int) -> Bool // takes two ints and returns a Bool
....
var operation: (Double) -> Double
Closures: it is common to pass funcs arround that we are very often “inlining” them, we call this inlined funcs a closure.