Pesquisar na Comunidade
Mostrando resultados para as tags ''assert''.
Atualmente, o índice de pesquisa está sendo processado. Os resultados atuais podem não estar completos.
Encontrado 1 registro
-
Assert - Só para ter certeza Definição: assert(v, [, message]) Questões um erro quando o valor de seu argumento V é falso (ie, nil ou false); caso contrário, retorna todos os seus argumentos. mensagem é uma mensagem de erro; quando ausente, a mensagem padrão é "assertion failed"! Vejamos alguns exemplos; Nós vamos apenas tentar algumas coisas e ver como eles vão correr. Algo Verdadeiro: Vamos tentar o óbvio, basta ligar para afirmar com verdade. assert(true) Como você pode ver, nada acontece e a função apenas retorna verdadeiro. Algo Falso: Vamos ver o que acontece se executarmos o código a seguir com a falsa: assert(false) O nosso primeiro erro intencional. Lua é tão emocionante! Para outros valores de falsa Com a exceção de falsa , apenas um outro valor, nulo , avaliada como falsa. assert(nil) Enviar uma mensagem; De acordo com a especificação, se dermos valer um segundo argumento, ele será definido como a mensagem de erro. assert(false, "Erro Encontrado!") Isto é extremamente útil quando rastreando que afirmam está travando o seu programa. Para alguns valores de verdade Mas além de apenas o verdadeiro e o falso, afirmam vai fingir que quaisquer outros tipos diferentes de nil também são verdadeiras . Vamos checar assert(1) assert(0) assert("false") assert({false}) assert(function() end) assert(newproxy()) Valor de retorno Quando assert for bem-sucedido, o que ele voltar? Vamos explorar print(assert(true, "message")) print(assert(1, 2, 3)) Encontrados na natureza: Para finalizar, vamos olhar para alguns mundo real usa de assert . Testar suas funções Suponha-se que durante a concepção do seu programa, você precisa ter certeza de que seu programa está correto. Uma maneira de fazer isso é afirmar que a função irá retornar alguns valores pré-definidos. Tomemos por exemplo o problema de mostrar que \ sum_ {i = 1} ^ n = \ frac {n ^ 2 + n} {2} . Nós pode polvilhar em alguns afirma ter certeza de que o nosso código é, pelo menos, "visivelmente" correto. O que digitar: function sum(n) return (n*n - n)/2; end local s = 0 for i=1,100 do s = s + i assert(sum(i) == s, "Case "..i.." failed: expected "..s.." but got "..sum(i).." instead.") 9end Opa, parece que o caso 1 falhou. Tomar um olhar mais atento ao código, torna-se óbvio que é o problema. (Você consegue identificar o erro Dica: olhar para a fórmula matemática) Protegendo contra nil valores Um dos outros "idiomas" comuns da Lua é usar assert para "guarda" contra os valores nulos. Mais especificamente, suponha que queremos ler um arquivo que não existe e nós queremos travar o programa mais cedo ou mais depois de desperdiçar mais recursos. Uma maneira de fazer isso é através de O que digitar: local file = assert(io.open("fake_file.lua", "rb")) Se você é diligente, você pode ter notado também que a mensagem de erro informa ao invés do mais genérico "afirmação que falhou!" mensagem. Não se preocupe, executando o seguinte código venha a aliviar suas preocupações. [string "stdin"]:1: fake_file.lua: No such file or directory O que digitar: print(io.open("fake_file.lua", "rb")) Considerando que a convenção em outros idiomas é para lançar uma exceção, para Lua, você acabou de retornar nulo e, opcionalmente, jogar em uma mensagem de erro.
-
- assert
- javascript
-
(e 1 mais)
Tags:
