Pular para o conteúdo

Conversões

int, float, str, cast e typeof — e o que acontece quando o valor não converte.

O que vem de fora — do teclado, de um CSV, de um JSON — chega quase sempre como texto. Converter é explícito nesta linguagem: "42" + 1 é erro, e não "421" nem 43.

dataforge
assert int("42") + 1 is 43
assert float("3.5") * 2 is 7.0
assert str(42) + "!" is "42!"
assert int(3.9) is 3                 // corta, nao arredonda
assert cast "7" as Integer is 7
assert bool(0) is no and bool("x") is yes
assert typeof(int("5")) is "Integer"

Quando não converte#

dataforge
action como_inteiro(texto, padrao := void):
    monitor:
        yield int(texto)
    handle Error:
        yield padrao

assert como_inteiro("12") is 12
assert como_inteiro("12,5") is void          // virgula nao e ponto
assert como_inteiro("", 0) is 0
out "o que nao converte vira void — e voce decide o que fazer"

Texto de um valor#

dataforge
assert str([1, 2]) is "[1, 2]"
assert str({"a": 1}) is "{a: 1}"
assert str(void) is "void" and str(yes) is "yes"
assert $"total: {10 * 3}" is "total: 30"