1
3
1。优雅的解决方案
这是另一个解决方案
测试:
输出(在 Go Playground ):
2。快速解
如果性能真的很重要,
因为任务基本上只是“解析”一个十六进制值,所以我们可以做得更好。我们甚至不需要调用一般的十六进制分析库(例如
现在让我们来看一个快速的实现:
使用与第一个示例中相同的输入进行测试,输出为(在 Go Playground ):
三。基准点让我们对这两个解决方案进行基准测试。基准代码将包括用长格式和短格式调用它们。排除错误情况。
以下是基准结果:
如我们所见,“快速”解决方案大致是 250次 更快,不使用分配(与“优雅”的解决方案不同)。 |
2
2
一个rgba颜色只有4个字节,每个字节代表红色、绿色、蓝色和alpha通道。对于三个或六个十六进制数字,alpha字节通常表示为0xff。(
因此,解析颜色字符串和规范化颜色字符串一样简单,这样它的形式是“rrggbbaa”(4个十六进制编码字节),然后对其进行解码:
|
3
-1
您可以使用
这个
您可以使用它将每两个字符解析为其组件 https://play.golang.org/p/B56B8_NvnVR
编辑:谢谢 Peter 用于更正 |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Manan Girdhar · 拆分字符串并仅在java中使用第二部分 2 年前 |
AnxiousLuna · Python使用len()获取数组索引数 2 年前 |
antonoyaro8 · 数据帧中每列上的Grepl 2 年前 |