我正在传递 3 参数并将其提供给api
参数包括: userName,creditpoints,action(+/-)。
所以我有一些规则来根据用户评分发送价值,该评级是0.0 - 5.0
规则集(信用点,行动):
1.0 - > 2, -
2.0 - > 1, -
3.0 - > 1,+
4.0 - > 2,+
5.0 - > 3,+
我可以使用 if和else if 执行此操作,但在每种情况下我都必须反复使用相同的代码。
最佳可能情况可以做到这一点,并且在几行中具有最小复杂度。
答案 0 :(得分:1)
使用最少代码执行此操作的最佳方法是在参数中找到一些算法模式。
在您的情况下,例如动作是“ - ”用于评级< 3和“+”用于评级> = 3,因此你可以像这样处理动作参数:
apiCall(userName, creditPoints, rating < 3 ? "-" : "+");
类似地,creditPoints有一种模式:对于评级&lt; 3值为3 - 评级,评级&gt; = 3评级 - 2.所以最终的api调用将是:
apiCall(
userName,
rating < 3 ? 3 - rating : rating - 2,
rating < 3 ? "-" : "+"
);