2025年10月14日 星期二

Lua, table[-1] 並不像Python可以存取最後一個元素

 7 kyu: Pull your words together, man!

這題很簡單,但是我在寫code時,
想存取table資料結構的words裡面的最後一個元素,
發現不能用words[-1] (words[-1] 為 nil)
這點跟Python 3的list不同,
可行的替代寫法是
words[#words]

我寫的完整code如下:
return {
  sentencify = function(words)
    words[#words] = words[#words] .. "."
    words[1] = string.upper(string.sub(words[1], 1, 1)) .. string.sub(words[1], 2)
    return table.concat(words, " ")
  end
}
別人寫的比較精簡,如下:
return {
  sentencify = function(words)
    return table.concat(words, ' '):gsub('^.', string.upper)..'.'
  end
}

沒有留言:

張貼留言

Lua, 7 kyu, 排隊問題

 7 kyu,  Lost Lineup 這題很簡單,我一開始實作的方法是: local function find_lineup ( distances ) local a , d = {}, # distances for i = 1 , d do ...