Pointers and functions
Same logic, different form. Here Abs and Scale are plain functions, not methods.
Notice that Scale takes a *Vertex — it must, because it needs to mutate the value. And the call site has to pass &v explicitly.
Try it: remove the * from Scale’s parameter on line 16. What breaks? What else do you have to change to make it compile again?