0%

Codewars - RGB To Hex Conversion (Use Swift)

前言

這篇單純記錄我遇到一些不熟悉的地方而已

我們先來看題目 - RGB To Hex Conversion

題目

題目非常簡單,就是轉成色碼而已,所以大於 255(FF) 或是 小於 0 的都是無效的,題目要求我們把它變成最接近的數值也就是

大於255就當做255,小於0當做0

所以這邊我們可以額外寫一個函式,專門處理範圍的

1
2
3
func limit(_ color: Int) -> Int {
return min(255, max(0, color))
}

接下來就可以處理字串了

1
2
3
func rgb(_ r: Int, _ g: Int, _ b: Int) -> String {
return String(format: "%02X%02X%02X", limit(r), limit(g), limit(b))
}

這樣就完成了

解析

第一個 limit 這個函式,簡單來說就式處理範圍的(廢話)
第二個就是題目要求我們需要回傳的字串,使用String(format: "yourformat", argument: yourargument)來達成我們要的,其中
%02X代表:

使用十六進位且大寫(X 的部份),並且不足2位數就補0(02的部份)

這樣就可以達到題目的要求了
完整程式碼如下

1
2
3
4
5
6
func limit(_ color: Int) -> Int {
return min(255, max(0, color))
}
func rgb(_ r: Int, _ g: Int, _ b: Int) -> String {
return String(format: "%02X%02X%02X", limit(r), limit(g), limit(b))
}

如果有錯誤的部份,歡迎指正,謝謝。
如果你喜歡這篇文章,請幫我拍手
只需要註冊會員就可以囉,完全不用花費任何一毛錢就可以用來鼓裡創作者囉