Arduino map功能是否有任何等效功能?
map(value,fromLow,fromHigh,toLow,toHigh)
描述
将数字从一个范围重新映射到另一个范围。也就是说,一个值 fromLow会映射到toLow,值从高到高, 介于两者之间的值,等等
如果没有,我将如何在go中实现这个?
答案 0 :(得分:3)
Arduino
map
函数是否有任何等价物?
标准库,或更具体地说是math
package,不提供这样的功能,没有。
如果没有,我将如何在go中实现这个?
通过获取原始代码并将其转换为Go。 C和Go在语法上非常相关,因此这项任务非常非常简单。您链接的map
手册页为您提供了代码。正如已经提到的那样,要翻译的内容是微不足道的。
原件来自page you linked:
对于数学倾向,这是整个函数
long map(long x, long in_min, long in_max, long out_min, long out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }
您可以将其转换为类似
的内容func Map(x, in_min, in_max, out_min, out_max int64) int64 {
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
}
Here就是游乐场上的一个例子。
请注意,map
在Go中不是有效的函数名,因为已经有map
内置类型使用于定义地图类型的关键字,类似于map
成为保留关键字。[]T
语法。