Hey!
Regarding the first line:
var cell := Vector2.ZERO:
This just initializes the variable. The ":=" means the type of the right site is inferred.
You could also write this which is basically the same thing.
var cell: Vector2 = Vector2.ZERO:
Now to the setter:
You don`t really need it but it can be nice to have. Basically you write logic there that you want to run each time you assign a value to your variable. It gets automatically called when you do stuff like this.
cell = Vector2(new_x,new_y)
The setter gets called after this.
Like the comment says here the setter makes sure that the cell variable is always inside the grid.
Instead of using a setter you can alternatively write this every time you assign a new value to your variable which does the same thing:
cell = grid.grid_clamp(Vector2(new_x,new_y))