Этим оператором стали определять переменные в границах выражения, и тогда когда использование знака = логически не верно. Это нужно, в основном, для сокращения кода и повышения его читаемости.
Запись x := y не означает, что x и y равны друг другу. Здесь x определён как любое значение y. Уравнение скорее одностороннее, чем симметричное. При этом правая часть — это всегда функция (!) или генератор (что, по сути, тоже функция)
Это сложно понять сходу и без подготовки, и кратко тут не напишешь. Ознакомьтесь со
статьей на эту тему - возможно так вам станет понятней.
Написанное выше равенство - приведено для понимания! Просто так присвоить через := переменной ее значение нельзя поскольку это должно быть именно вычисляемая (генерируемая) сущность.
Это действительно емкая тема и в ней нужно специально разбираться. Я дал вам статью - очень советую с ней ознакомиться.