我有抓住外圍類型的列表,匹配他們看看他們是否有效的類型,然後它們是否有效執行特定類型的代碼的程序。如何使用模式,以縮短僅匹配字符串
但是,有些類型可以共享部分名稱,唯一不同的是它們的層次,我想將它們與有效外設列表中列出的基類型進行匹配,但我無法弄清楚使用模式來匹配它們,而不會返回nil
的模式,但不匹配所有內容。
這裏是爲了證明我的問題代碼:
connectedPeripherals = {
[1] = "tile_thermalexpansion_cell_basic_name",
[2] = "modem",
[3] = "BigReactors-Turbine",
[4] = "tile_thermalexpansion_cell_resonant_name",
[5] = "monitor",
[6] = "tile_thermalexpansion_cell_hardened_name",
[7] = "tile_thermalexpansion_cell_reinforced_name",
[8] = "tile_blockcapacitorbank_name"
}
validPeripherals = {
["tile_thermalexpansion_cell"]=true,
["tile_blockcapacitorbank_name"]=true,
["monitor"]=true,
["BigReactors-Turbine"]=true,
["BigReactors-Reactor"]=true
}
for i = 1, #connectedPeripherals do
local periFunctions = {
["tile_thermalexpansion_cell"] = function()
--content
end,
["tile_blockcapacitorbank_name"] = function()
--content
end,
["monitor"] = function()
--content
end,
["BigReactors-Turbine"] = function()
--content
end,
["BigReactors-Reactor"] = function()
--content
end
}
if validPeripherals[connectedPeripherals[i]] then periFunctions[connectedPeripherals[i]]() end
end
如果我嘗試這樣運行它,所有的thermalexpansioncells不能被識別爲有效外設,如果我添加匹配的語句模式,它適用於thermalexpansioncells,但對於其他任何情況返回nil並導致異常。
我怎麼做一個匹配語句只返回匹配的事情縮短字符串,返回的東西,不要原始字符串?
這可能嗎?
您也可以使用該方法調用語法甚至更短,更可讀的代碼,例如:結果=長:比賽(「富」)或長 – tonypdmtr 2015-04-03 13:33:36
@tonypdmtr是這好得多:) – ryanpattison 2015-04-03 13:35:23