PureBasic

With : EndWith


Синтаксис
With <expression>
  ...
EndWith

Описание


Блоки With : EndWith можно использовать с полями структур, с целью уменьшить количество кода и улучшить его читаемость. Это - директива компилятора и работает так же к macro, т.е. заданное выражение автоматически вставляется перед любым символом обратного слэша '\', перед которым нет пробела или символа операции. Код ведёт себя совершенно так же, как его версия с подстановками. Блоки With : EndWith нельзя вкладывать друг в друга, так как это может вызвать ошибки, которые трудно отслеживать в условиях, когда несколько операторов были неявно заменены.

Пример

Structure Person
    Name$
    Age.l
    Size.l
EndStructure

Friend.Person

With Friend
    \Name$ = "Yann"
    \Age  = 30
    \Size  = 196

    Debug \Size+\Size
EndWith

Пример: Сложный пример

Structure Body
    Weight.l
    Color.l
    Texture.l
EndStructure

Structure Person
    Name$
    Age.l
    Body.Body[10]
EndStructure

Friend.Person

For k = 0 To 9
    With Friend\Body[k]
        \Weight = 50
        \Color  = 30
        \Texture = \Color*k

        Debug \Texture
    EndWith
Next

�����?