-
Notifications
You must be signed in to change notification settings - Fork 7
Conditionals
Let's take a closer look at what we saw before about syntax.
First we'll talk about the conditional, '<@VARIABLE | STRING> OPERATOR <@VARIABLE | STRING> [|| | && ANOTHER_CONDITIONAL ...]. If we simplify this we can see that's just a regular binary conditional and anyone that has coded a bit in their life won't have problems.
Let's create a basic conditional like that: @name == awesome_file. we'll discuss later what means the @, now let's focus on the conditional. We can split it in 3 parts:
-
@name: First candidate, the operator will evaluate it with the second candidate -
==: Operator, determines how to evaluate the conditional. -
awesome_file: second candidate, evaluated against the first candidate by the operator.
Now let's talk about precedence, it's like chaining conditionals, and again, anyone that has coded a bit will be used to it.
-
&&: Will only yield true if the conditionals between it are both true. -
||: Will yield true if any of the conditional between it are so.
Now we can make a "complex" conditional: @name == awesome_file && @elf != true. It will be true if @name is exactly awesome_file, and @elf evaluates to false.
We've only seen 2 operators, here is the list with all of them:
-
==: true if the first value matches the second -
!=: true if the first value doesn't match the second -
>: true if the first value is greater than the second -
>=: true if the first value is equal or greater than the second -
<: true if the first value is less than the second -
<=: true if the first value is equal or less than the second -
~=: true if a value matches the regular expression provided in the other value -
~!: true if a value doesn't match the regular expression provided in the other value