Translate
jueves, 16 de enero de 2020
El lenguaje de programación V, Parte 3
Seguimos con V
Veamos un ejemplo del condicional :
a := 10
b := 20
if a < b {
println('$a < $b')
} else if a > b {
println('$a > $b')
} else {
println('$a == $b')
}
Si las declaraciones son bastante directas y similares a la mayoría de los otros lenguajes.
A diferencia de otros lenguajes tipo C, no hay paréntesis que rodeen la condición, y las llaves siempre son necesarias.
si, se puede usar como una expresión:
num := 777
s := if num % 2 == 0 {
'even'
}
else {
'odd'
}
println(s) // "odd"
in permite verificar si una matriz o un mapa contiene un elemento.
nums := [1, 2, 3]
println(1 in nums) // true
m := {'one': 1, 'two': 2}
println('one' in m) // true
También es útil para escribir expresiones booleanas más claras y compactas:
if parser.token == .plus || parser.token == .minus ||
parser.token == .div || parser.token == .mult {
...
}
if parser.token in [.plus, .minus, .div, .mult] {
...
}
V optimiza tales expresiones, por lo tanto, si las declaraciones anteriores producen el mismo código de máquina, no se crean matrices.
V tiene solo una construcción de bucle: for.
numbers := [1, 2, 3, 4, 5]
for num in numbers {
println(num)
}
names := ['Sam', 'Peter']
for i, name in names {
println('$i) $name') // Output: 0) Sam
}
El valor en el bucle se usa para recorrer elementos de una matriz. Si se requiere un índice, se puede usar una forma alternativa para el índice.
Tengamos en cuenta que el valor es de solo lectura. Si necesita modificar la matriz mientras realiza el bucle, debe usar la indexación:
mut numbers := [1, 2, 3, 4, 5]
for i, num in numbers {
println(num)
numbers[i] = 0
}
mut sum := 0
mut i := 0
for i <= 100 {
sum += i
i++
}
println(sum) // "5050"
Esta forma del bucle es similar a los bucles while en otros lenguajes.
El bucle dejará de iterar una vez que la condición booleana se evalúe como falsa.
No hay paréntesis que rodeen la condición, y siempre se requieren llaves.
mut num := 0
for {
num++
if num >= 10 {
break
}
}
println(num) // "10"
La condición puede omitirse, esto da como resultado un bucle infinito.
for i := 0; i < 10; i++ {
// Don't print 6
if i == 6 {
continue
}
println(i)
}
Finalmente, está el estilo tradicional C para loop. Es más seguro que la forma `while` porque con esta última es fácil olvidarse de actualizar el contador y quedarse atascado en un bucle infinito.
Aquí no necesito ser declarado con mut ya que siempre será mutable por definición.
Dejo link:
https://vlang.io/