Lua程序設計第4版第5章練習答案

5.1
monday sunday sunday
t.sunday => 表中sunday對應的值
t[sunday] =>sunday變量=>monday鍵([sunday]對應的值=>monday變量"sunday"
t[t.sunday]=>monday鍵同上

5.2
同一張表的引用 一樣
引發異常 等同於把3當成表來用了

5.3
方括號內寫索引值

5.4
每次多乘一個x,構造表達式 l[i]*x^i

function f54(l,x)
    local sum = 0
    local tmp = 1
    for i = 1, #l do
        sum = sum+l[i]*tmp
        tmp = tmp*x
    end
    return sum
end


print(f54({5,2,3},2))
function f54(l,x,n)
    local sum = 0
    local tmp = 1
    local cnt = -1
    for i = 1, #l do
        sum = sum+l[i]*tmp
        cnt=cnt+1
        print("cnt = "..cnt)
        if cnt==n then
            break
        end
        tmp = tmp*x
    end
    return sum
end


print(f54({5,2,3,4},2,2))

5.6
看最後一個元素的索引和表的長度是否相等

5.7
Pair迭代A表把元素插入到B表中

5.8
遍歷使用新字符串拼接連接造成大量新字符串生成性能消耗、
計時方法 times= os.Clock() os.clock()-times

function concat(l)
    s = ""
    for k,v in pairs(l) do
        s= s..v
    end
    return s
end

times1 = os.clock()
for i = 1, 1000000 do
    concat({"hello"," ","world"})
end
print(os.clock()-times1)

times2 = os.clock()
for i = 1, 1000000 do
    table.concat({"hello"," ","world"})
end
print(os.clock()-times2)

差異
0.681
0.454

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章