🚀
値の条件比較を三項演算子と if を使わずに実装する方法
Python
と JavaScript
で三項演算子とifを使わずに a
と b
の代償比較をする実装
いくつか方法は考えられるが、Python
は match
、Javascript
であれば switch
を利用する。この際、条件分岐として sign
関数を用いて正負によって値を分岐させると便利である。
Python
import numpy as np
def no_ifs_no_buts(a, b):
sign = np.sign(a-b)
match sign:
case -1:
return f'{a} is smaller than {b}'
case 0:
return f'{a} is equal to {b}'
case 1:
return f'{a} is greater than {b}'
JavaScript
const noIfsNoButs = (a,b) => {
switch (Math.sign(a-b)) {
case 1: return `${a} is greater than ${b}`;
case -1:return `${a} is smaller than ${b}`;
case 0: return `${a} is equal to ${b}`;
}
}
Discussion