答案里面的g()定義是必須的嗎
只看了答案第一段的提示之后,我知道了問題所在是函數(shù)錯調(diào)用了定義外的變量,然后我試著寫了圖中的代碼,運(yùn)行成功,再看答案就懵了,咋肥事啊,他比我多定義了一個(gè)g(),和我這個(gè)哪個(gè)是正確的,區(qū)別在哪
只看了答案第一段的提示之后,我知道了問題所在是函數(shù)錯調(diào)用了定義外的變量,然后我試著寫了圖中的代碼,運(yùn)行成功,再看答案就懵了,咋肥事啊,他比我多定義了一個(gè)g(),和我這個(gè)哪個(gè)是正確的,區(qū)別在哪
2018-11-01
舉報(bào)
2018-11-01
兩端代碼其實(shí)是一樣的。因?yàn)槟阍诙x第二個(gè)函數(shù)def f(j=i)的時(shí)候引用了另外一個(gè)變量j,此時(shí)數(shù)組中的引用變量指向的也不是i,而是j所指向的內(nèi)容。但是這里又因?yàn)橥饷嫣琢艘粋€(gè)for循環(huán),所以,可以看做循環(huán)一次,調(diào)用一個(gè)變量j。如果你理解堆和棧,那就更容易理解了??傊?,你可以理解成你的這個(gè)代碼是答案的簡寫版。
2022-03-26
代碼有點(diǎn)冗余,可以使用ifelse簡化下,加溫。前臺就可以直接下載,用canvas得到dataurl