Slide 21 de 37

Conversões

Interpretando texto
proc main(): void {
	if hive.conv.sti("42") is Result.Ok(n) {
		echo n + 1
	}
}
Arredondando e ampliando
proc main(): void {
	half := hive.conv.itf(5) / 2.0   // amplia primeiro — Int e Float nunca se misturam
	echo hive.conv.round(half)
	echo hive.conv.fts(half)
	echo hive.conv.its(hive.conv.ceil(half))
}
hive.conv é puro, então funciona tanto em um func quanto em um proc. ceil, floor e round transformam um Float em um Int, arredondando o meio para longe do zero; itf amplia um Int para um Float, e its/fts renderizam um número como uma Str. sti e stf interpretam texto de volta em um número e, como interpretar pode falhar, respondem com um Result cujo ConversionError carrega a entrada culpada. Não existe conversão numérica implícita em nenhum outro lugar da linguagem, e é exatamente por isso que este módulo existe: um Int nunca se torna um Float silenciosamente.