Это эквивалентно:
if (!nearestEdge.isPartOfConvexHull()) {
radius = nearestEdge.sitesDistance() * 0.5;
}
В следующей строке:
var b:Boolean = expression1 && expression2;
expression2
не будет оцениваться, если expression1
равно false
, потому чтомы уже знаем окончательный результат: b = false
.
Теперь в следующей строке:
expression1 && expression2;
То же самое происходит, за исключением того факта, что мы не присваиваем результат переменной.
И это именно то, что происходит в строке, о которой вы спрашиваете, где !nearestEdge.isPartOfConvexHull()
является первым выражением, а (radius = nearestEdge.sitesDistance() * 0.5)
является вторым выражением.