3 votes

J'ai un ensemble de clés dans une table mais je ne sais pas comment le vérifier.

C'est ce que j'ai obtenu jusqu'à présent, il s'imprime juste un "code incorrect" avec table.concat, mais j'obtiens une erreur avec table.find

local keys = {"KEY_!@#%$!@#$%^&*(AF^FJ#GSG#FSV#%345R#3553d",  "KEY_FJJN@UJFISFSFSF#&%W*CN#CUIWUUC#*W(*C$357275C"}

local key = "KEY_!@#%$!@#$%^&*(AF^FJ#GSG#FSV#%345R#3553d"

if key == table.find(keys) then
  print("Success")
else 
  print("Incorrect Key")
end

2voto

Nifim Points 474

Vous ne disposez pas d'un ensemble de clés dans le fichier sens commun du terme de programmation et c'est la solution à votre question.

un ensemble est un type de données abstrait qui peut stocker des valeurs uniques, sans ordre particulier. Il s'agit d'une implémentation informatique du concept mathématique d'ensemble fini. Contrairement à la plupart des autres types de collections, plutôt que de récupérer un élément spécifique d'un ensemble, on teste généralement l'appartenance d'une valeur à un ensemble. -Wikipédia

vous pouvez convertir votre keys en un ensemble, où il suffit d'indexer l'ensemble à l'aide de votre key pour savoir si la clé est présente dans l'ensemble.

local keys = {"KEY_!@#%$!@#$%^&*(AF^FJ#GSG#FSV#%345R#3553d",  "KEY_FJJN@UJFISFSFSF#&%W*CN#CUIWUUC#*W(*C$357275C"}

local keyset = {}

for _, v in ipairs(keys) do
  keyset[v] = true
end

local key = "KEY_!@#%$!@#$%^&*(AF^FJ#GSG#FSV#%345R#3553d"

if keyset[key] then
  print("Success")
else 
  print("Incorrect Key")
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X