2017-06-04 8 views
1

何らかの理由で返されるように見える国は、すべてペアで返されますか?一度「ヨーロッパ」の国だけを返すようにコードを変更するにはどうすればよいですか?ペア印刷の価値はありますか?ルア

function newcountry(continent,country) 
    local object = {} 
    object.continent = continent 
    object.country = country 

    local list = {} 

    for i in pairs(object) do 
    if object.continent == "Europe" then 
    table.insert(list, object.country) 
    print(object.country) 

    end 
end 

    return object 
end 


a = newcountry("Africa","Algeria") 
b = newcountry("Europe","England") 
c = newcountry("Europe","France") 
d = newcountry("Europe","Spain") 
e = newcountry("Asia","China") 

答えて

1

私はあなたがこのコードで達成しようとしているのかわからないんだけど、あなたの質問に答えるために:

function newcountry(continent,country) 
    local object = {} 
    object.continent = continent 
    object.country = country 
    local list = {} 
    if object.continent == "Europe" then 
     table.insert(list, object.country) 
     print(object.country) 
    end 
    return object 
end 

このコードは一度だけヨーロッパで国を印刷します。そこにループがあると、objectテーブル(continentcountry、それゆえ2回)の各要素でそれをしたので、国の名前を2回印刷しました。

Generic for loopsルアプログラミング(初版)。

また、listは現時点では非常に役に立たないと指摘したいと思います。それは返されず、ローカルに留まります。さらに、newcountryに電話するたびにlistが作成されています。それらはすべてユニークです - 国オブジェクトはではなく、が単一のリストに追加されています。しかし、再び - 私はあなたが達成しようとしていることを知らない。

関連する問題