第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

這個(gè) Go 代碼可以重構(gòu)嗎?

這個(gè) Go 代碼可以重構(gòu)嗎?

Go
明月笑刀無情 2021-08-16 18:28:49
只使用 1 個(gè)“if”語句,沒有“else”,沒有開關(guān),也沒有 if-else 的速記符號?    // Original function    func Wheel(WheelPos uint32) {        if WheelPos < 85 {            fmt.Println("WheelPos < 85",Color(WheelPos*3, 255-WheelPos*3, 0))        } else if WheelPos < 170 {            WheelPos -= 85            fmt.Println("WheelPos >= 85",Color(0, WheelPos*3, 255-WheelPos*3))        } else {            WheelPos -= 170            fmt.Println("WheelPos > 170",Color(0, 255-WheelPos*3, WheelPos*3))        }    }上面的函數(shù)在 for 循環(huán)中的 main 中被調(diào)用,如下所示:    func main() {        var i uint32        for i = 0; i < 255; i++ {            Wheel(i)        }    }顏色函數(shù)定義如下:    func Color(r uint32, g uint32, b uint32) uint32 {        return (r << 16) | (g << 8) | b    }我已經(jīng)開始了這樣的事情:    func Wheel(WheelPos uint32) {        if (WheelPos < 85) || (WheelPos >= 85) || (WheelPos > 170) {         // logic....        }    }
查看完整描述

2 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

我不知道你會如何重構(gòu)代碼,并以某種方式保持足夠清晰和富有表現(xiàn)力。

如果您只需要考慮三種情況,將它們分成三個(gè)單獨(dú)的 if/else 是對這些情況進(jìn)行編碼的最簡單方法。


查看完整回答
反對 回復(fù) 2021-08-16
?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

這在技術(shù)上是可行的:您可以為>170案例創(chuàng)建一個(gè) if 語句,然后定義一個(gè)包含 170 個(gè)函數(shù)指針的數(shù)組,并對其他兩個(gè)案例使用索引操作。我想不出一個(gè)合理的情況,即此解決方案實(shí)際上比您已有的解決方案更好。


查看完整回答
反對 回復(fù) 2021-08-16
  • 2 回答
  • 0 關(guān)注
  • 202 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號