2017-06-19 1 views
1

J'apprends Lua et probablement ne pas une grande portée sur la façon dont fonctionne le langage mais je suis en train de créer une fonction split pour la bibliothèque de chaîne:Lua table est nul

string.split = function(str, delimiter) 

    -- A function which splits a string by a delimiter 
    values = {} 
    currentValue = "" 
    for i = 1, string.len(str) do 

     local character = string.sub(str, i, i) 
     if(character == delimiter) then 

      table.insert(values,currentValue) 
      currentValue = "" 

     else 

      currentValue = currentValue..character 

     end 

    end 

    -- clean up last item 
    table.insert(values,currentValue) 

    return vaules 

end 

values n'est pas nul si je l'imprime avant le retour, mais si j'appelle t = string.split("hello world", " "), il sera nul. Je ne suis pas tout à fait sûr pourquoi ma table disparaît

Répondre

1

Vous avez une faute de frappe dans votre déclaration de retour.

vaules 

Au lieu de values.

vaules est nul bien sûr.

Un autre conseil: faites des variables locales autant que possible.

+0

Oh mon dieu, merci beaucoup. – AlgoRythm

+0

@AlgoRythm shit arrive;) utiliser copier et coller et autocomplétion pour minimiser ces erreurs. en particulier si vous déboguez du code et imprimez des valeurs – Piglet