Do manual
O jq suporta o mesmo conjunto de tipos de dados que o JSON: números, strings, Boolean, arrays, objetos (que, em linguagem JSON, são hashes com apenas chaves do tipo string) e "null".
Vamos concentrar-nos nos números.
Todos os números, sejam inteiros ou não, são números de vírgula flutuante de dupla precisão IEEE754. Isto limita-nos a 53 bits de precisão.
Com números, podes usar os operadores habituais:
aritmética: +, -, *, /, %
comparação: ==, !=, <, <=, >=, >
as funções matemáticas habituais
Nas funções com um único parâmetro de entrada, canaliza o valor para a função
$ jq -n '(1 | atan) * 4'
3.141592653589793
Nas funções com dois parâmetros de entrada, a função ignora o valor de entrada e espera receber esses valores como parâmetros (lembra-te de que os parâmetros são separados por ponto e vírgula)
$ jq -n 'pow(2; 10)'
1024
O ponto e vírgula é o separador dos argumentos da função, não a vírgula.
jq
Para resolveres o exercício, vais precisar de saber o que são expressões condicionais.
O jq usa uma expressão if-then-else para as expressões condicionais.
Enquanto expressão, é colocada num pipeline.
A sintaxe é: if CONDITION then TRUE_EXPR else FALSE_EXPR end.
A cláusula else é opcional.
42 | if . < 33 then "small" else "larger" end
# => "larger"
As condições adicionais usam elif
42 | if . < 33 then "small"
elif . < 67 then "medium"
else "large"
end
# => "medium"
Neste exercício vais escrever código para analisar a produção de uma linha de montagem numa fábrica de automóveis.
A velocidade da linha de montagem pode variar entre 0 (desligada) e 10 (máxima).
À sua velocidade mais lenta (1), são produzidos 221 carros por hora.
A produção aumenta linearmente com a velocidade.
Por isso, com a velocidade definida como 4, a linha deve produzir 4 * 221 = 884 carros por hora.
No entanto, velocidades mais altas aumentam a probabilidade de se produzirem carros com defeito, que depois têm de ser descartados.
A tabela seguinte mostra como a velocidade influencia a taxa de sucesso:
1 a 4: 100% de taxa de sucesso.5 a 8: 90% de taxa de sucesso.9: 80% de taxa de sucesso.10: 77% de taxa de sucesso.Tens duas tarefas.
Calcula a taxa de produção da linha de montagem por hora, tendo em conta a taxa de sucesso.
Calcula quantos carros completos e funcionais são produzidos por minuto.
Inscreve-te no Exercism para aprenderes e dominares jq com 12 conceitos75 exercícios, e mentoria humana real, tudo grátis.