337p人体粉嫩胞高清图片,97人妻精品一区二区三区在线 ,日本少妇自慰免费完整版,99精品国产福久久久久久,久久精品国产亚洲av热一区,国产aaaaaa一级毛片,国产99久久九九精品无码,久久精品国产亚洲AV成人公司
網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

MiniScript把10個(gè)參數(shù)塞進(jìn)1個(gè)對(duì)象,代碼突然能讀了

0
分享至


MiniScript的PixelDisplay.drawImage有10個(gè)參數(shù)。想給圖片加個(gè)青色濾鏡?你得記住第9個(gè)位置是srcHeight,第10個(gè)才是tint——哪怕前面7個(gè)參數(shù)你根本不想動(dòng)。

作者Joe Strout在文檔里吐槽:「So many times I have typed @gfx.saveImage at the Mini Micro prompt just to remind myself of the order of the parameters!」這種靠運(yùn)行時(shí)查文檔才能寫代碼的體驗(yàn),用過(guò)Python早期版本的人應(yīng)該很熟悉。

但MiniScript故意不支持命名參數(shù)。

Strout見過(guò)25個(gè)參數(shù)的函數(shù)噩夢(mèng)。命名參數(shù)會(huì)讓開發(fā)者肆無(wú)忌憚地堆參數(shù),然后寫一堆校驗(yàn)邏輯確保組合合法,再寫一堆文檔教人怎么用。「I have rarely seen any language feature so quickly lead to bad code as named parameters; it may even take the lead from GOTO in this department.」

他的解決方案是Parameter Object模式——把10個(gè)參數(shù)塞進(jìn)一個(gè)字典,用的時(shí)候按需取用。

10個(gè)參數(shù)的函數(shù)長(zhǎng)什么樣

原版drawImage的簽名:image, left=0, bottom=0, width=-1, height=-1, srcLeft=0, srcBottom=0, srcWidth=-1, srcHeight=-1, tint="#FFFFFF"。

調(diào)用 tinted 圖片的代碼:gfx.drawImage img, 500, 200, -1, -1, 0, 0, -1, -1, color.aqua。數(shù)一下,7個(gè)-1和0的占位符,只為把color.aqua送到第10位。

這種"位置記憶游戲"在Mini Micro這類創(chuàng)意編程環(huán)境里尤其痛苦。用戶想畫個(gè)帶顏色的圖,卻被迫學(xué)習(xí)9個(gè)無(wú)關(guān)參數(shù)的默認(rèn)值。

Parameter Object怎么改

Strout的重構(gòu)版本用單個(gè)params字典替代全部位置參數(shù)。核心依賴mapUtil模塊的get方法,提供默認(rèn)值回退:

g = params.get("gfx", gfx)

g.drawImage params.image, params.get("left", 0), params.get("bottom", 0)...

調(diào)用變成:drawImage {"image": img, "tint": color.aqua}。只傳想改的,其余自動(dòng)走默認(rèn)。

這個(gè)模式在MiniScript里有個(gè)額外好處:字典可以存進(jìn)變量,反復(fù)傳遞。

比如一組圖片都用相同的left/bottom/width/tint配置,先打包成options = {"left": 100, "bottom": 200, "tint": color.red},然后循環(huán)里只改image鍵。helper方法之間傳參也清爽很多。

為什么不直接支持命名參數(shù)

Strout的觀點(diǎn)很直接:語(yǔ)言特性會(huì)塑造編碼習(xí)慣。命名參數(shù)降低設(shè)計(jì)成本,導(dǎo)致函數(shù)膨脹,最終傷害的是代碼可維護(hù)性。

Parameter Object是顯式的妥協(xié)。你仍然可以寫爛代碼,但至少要定義一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)承載參數(shù),這個(gè)步驟本身就在提醒"這里可能需要重新設(shè)計(jì)"。

MiniScript的定位是教育/創(chuàng)意編程語(yǔ)言。它的用戶很多是編程新手,或者從Scratch過(guò)渡來(lái)的青少年。強(qiáng)制簡(jiǎn)潔的函數(shù)簽名,比提供"強(qiáng)大但易濫用"的特性更符合目標(biāo)場(chǎng)景。

Strout在文末留了個(gè)開放實(shí)現(xiàn):「In your own code, you could actually replace the original method with the refactored one」。但Mini Micro的API凍結(jié)了,所以示例代碼選擇包裝而非替換。

這種"舊接口包新接口"的技巧,在維護(hù)遺留系統(tǒng)時(shí)很常見。你沒法改底層,但可以給用戶層提供更好的抽象。

最后他鼓勵(lì)讀者:「I encourage you to fire up Mini Micro, either locally or on the web, and follow along for yourself。」

試過(guò)在瀏覽器里跑Mini Micro的人會(huì)發(fā)現(xiàn),它的REPL環(huán)境確實(shí)適合這種即學(xué)即改的探索。10個(gè)參數(shù)的drawImage和1個(gè)參數(shù)的drawImage,你更愿意維護(hù)哪個(gè)?

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
張雪峰戳破的3個(gè)教育潛規(guī)則:普通家庭的孩子,根本輸不起

張雪峰戳破的3個(gè)教育潛規(guī)則:普通家庭的孩子,根本輸不起

畫夕
2026-03-25 14:25:06
南京男子回家迫不及待抱住妻子,結(jié)果家中鸚鵡一開口,讓他崩潰!

南京男子回家迫不及待抱住妻子,結(jié)果家中鸚鵡一開口,讓他崩潰!

白云故事
2025-03-14 19:05:07
笑掉大牙!伊朗高層當(dāng)眾互撕,吹破天的強(qiáng)硬,連軍餉都發(fā)不出來(lái)

笑掉大牙!伊朗高層當(dāng)眾互撕,吹破天的強(qiáng)硬,連軍餉都發(fā)不出來(lái)

老馬拉車莫少裝
2026-03-25 19:39:00
美軍司令:一旦臺(tái)海戰(zhàn)爭(zhēng)打響,6個(gè)航母戰(zhàn)斗群2個(gè)陸戰(zhàn)師將全都出動(dòng)

美軍司令:一旦臺(tái)海戰(zhàn)爭(zhēng)打響,6個(gè)航母戰(zhàn)斗群2個(gè)陸戰(zhàn)師將全都出動(dòng)

霽寒飄雪
2026-03-26 09:54:09
炸鍋!利物浦 1.25 億標(biāo)王主動(dòng)申請(qǐng)離隊(duì),首選下家完全出乎意料

炸鍋!利物浦 1.25 億標(biāo)王主動(dòng)申請(qǐng)離隊(duì),首選下家完全出乎意料

瀾歸序
2026-03-26 06:08:07
成都世遺馬拉松一女子賽道擺拍“一字馬”,險(xiǎn)絆倒后方選手!組委會(huì):取消成績(jī)、2027年禁賽

成都世遺馬拉松一女子賽道擺拍“一字馬”,險(xiǎn)絆倒后方選手!組委會(huì):取消成績(jī)、2027年禁賽

大象新聞
2026-03-25 17:53:10
宅基地確權(quán)最后沖刺:今年不把名字改成兒子的,以后可能就改不了

宅基地確權(quán)最后沖刺:今年不把名字改成兒子的,以后可能就改不了

混沌錄
2026-03-19 21:59:03
14.99萬(wàn)!“史上最便宜”特斯拉來(lái)了

14.99萬(wàn)!“史上最便宜”特斯拉來(lái)了

首席品牌觀察
2026-03-24 16:18:39
姆巴佩:說(shuō)我在皇馬遭誤診是假的,也怪我留下了可解讀的空間

姆巴佩:說(shuō)我在皇馬遭誤診是假的,也怪我留下了可解讀的空間

懂球帝
2026-03-26 04:09:06
朝鮮國(guó)運(yùn)來(lái)了!中東大戰(zhàn),又是朝鮮悶聲發(fā)大財(cái)?

朝鮮國(guó)運(yùn)來(lái)了!中東大戰(zhàn),又是朝鮮悶聲發(fā)大財(cái)?

北向財(cái)經(jīng)
2026-03-24 22:17:38
羅德里:不排除未來(lái)加盟皇馬,無(wú)法拒絕世界最佳俱樂部

羅德里:不排除未來(lái)加盟皇馬,無(wú)法拒絕世界最佳俱樂部

懂球帝
2026-03-26 09:48:07
華裔女賭神趙蘇茜:曾橫掃美國(guó)賭場(chǎng),一局贏下400萬(wàn),33歲遭焚尸

華裔女賭神趙蘇茜:曾橫掃美國(guó)賭場(chǎng),一局贏下400萬(wàn),33歲遭焚尸

嘆為觀止易
2026-03-24 16:45:26
養(yǎng)肥了再宰?蒙古對(duì)西方巨頭下手了,這一刀也給中國(guó)提了個(gè)醒

養(yǎng)肥了再宰?蒙古對(duì)西方巨頭下手了,這一刀也給中國(guó)提了個(gè)醒

財(cái)經(jīng)保探長(zhǎng)
2026-03-19 19:39:45
1965年,毛主席點(diǎn)名讓彭德懷復(fù)出,背后有人拼命阻撓,這人后來(lái)判了18年

1965年,毛主席點(diǎn)名讓彭德懷復(fù)出,背后有人拼命阻撓,這人后來(lái)判了18年

史海孤雁
2026-03-25 18:31:11
最大的80歲!河南3位大爺自駕三輪車出游106天,游歷八省總里程超3000公里!當(dāng)事人:出發(fā)前約定互不追責(zé),子女簽字見證

最大的80歲!河南3位大爺自駕三輪車出游106天,游歷八省總里程超3000公里!當(dāng)事人:出發(fā)前約定互不追責(zé),子女簽字見證

大象新聞
2026-03-25 21:45:12
何潔自曝養(yǎng)家艱難,40歲斷崖式衰老?明明一手好牌,為何被打爛

何潔自曝養(yǎng)家艱難,40歲斷崖式衰老?明明一手好牌,為何被打爛

扒點(diǎn)半吃瓜
2026-03-10 07:00:13
未提車就變“老款”,問(wèn)界M7“背刺”車主!律師:可能構(gòu)成欺詐

未提車就變“老款”,問(wèn)界M7“背刺”車主!律師:可能構(gòu)成欺詐

北京商報(bào)
2026-03-25 19:00:22
文班亞馬19+15+7封蓋,造聯(lián)盟獨(dú)一份神跡,馬刺大勝灰熊豪取7連勝

文班亞馬19+15+7封蓋,造聯(lián)盟獨(dú)一份神跡,馬刺大勝灰熊豪取7連勝

釘釘陌上花開
2026-03-26 10:18:59
騎士103-120熱火4弊端!防守送分,哈登被死草,阿特金森糟糕用人

騎士103-120熱火4弊端!防守送分,哈登被死草,阿特金森糟糕用人

籃球資訊達(dá)人
2026-03-26 10:58:53
末代港督彭定康夫婦,帶3個(gè)漂亮女兒回英國(guó),29年過(guò)去今過(guò)得咋樣

末代港督彭定康夫婦,帶3個(gè)漂亮女兒回英國(guó),29年過(guò)去今過(guò)得咋樣

攬星河的筆記
2026-03-26 00:26:09
2026-03-26 11:08:49
我是一個(gè)養(yǎng)蝦人
我是一個(gè)養(yǎng)蝦人
有態(tài)度網(wǎng)友ytd
53文章數(shù) 0關(guān)注度
往期回顧 全部

科技要聞

硅谷因AI大裁員?一線工程師戳破真相

頭條要聞

上海36歲女子嫁23歲小伙 拿千萬(wàn)元房產(chǎn)99%份額"閃離"

頭條要聞

上海36歲女子嫁23歲小伙 拿千萬(wàn)元房產(chǎn)99%份額"閃離"

體育要聞

35歲替補(bǔ)門將,憑什么入選英格蘭隊(duì)?

娛樂要聞

張雪峰遺產(chǎn)分割復(fù)雜!是否立遺囑成關(guān)鍵

財(cái)經(jīng)要聞

黃仁勛:芯片公司的時(shí)代已經(jīng)結(jié)束了

汽車要聞

一汽奧迪A6L e-tron開啟預(yù)售 CLTC最大續(xù)航815km

態(tài)度原創(chuàng)

藝術(shù)
時(shí)尚
健康
教育
手機(jī)

藝術(shù)要聞

哪一座橋不是風(fēng)景?

《非窮盡列舉》,好看又絕望

轉(zhuǎn)頭就暈的耳石癥,能開車上班嗎?

教育要聞

ISAR選修課丨重磅古典占星預(yù)測(cè)課程:整合6大預(yù)測(cè)技法,從入門到實(shí)戰(zhàn)

手機(jī)要聞

米粉都更新了嗎?小米澎湃OS 3.1 重磅推送,實(shí)現(xiàn)安卓蘋果生態(tài)互通

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版