"或"运算符不再重复左手条件

Fin*_*las 5 programming-languages operators

自从我开始使用良好的旧版本VB6直到现在开始编程时,我经常在编程中被烧毁(并且只是)

if x == something or x == somethingelse
Run Code Online (Sandbox Code Playgroud)

我经常写作:

if x == something or somethingelse
Run Code Online (Sandbox Code Playgroud)

出于纯粹的兴趣,那里的语言/语言是否支持这一点?

Tho*_*mas 11

Python确实如此:

if x in [something, somethingelse]:
    ...
Run Code Online (Sandbox Code Playgroud)

in只需检查元素是否出现在给定列表中.同样,在Haskell中:

if x `elem` [something, somethingelse] then ...
Run Code Online (Sandbox Code Playgroud)

我想这可以在大多数允许列表类型表达的语言中完成.


Gab*_*art 6

SQL有一个in运算符:x in (something, somethingelse),有许多语言可以实现类似的东西.

例如,在c#中,我使用自定义扩展方法: if (x.In("something", "somethingelse"))...

编辑这里是我的c#扩展方法的来源:

public static bool In<T>(this T item, params T[] test_values) {
  foreach (T test_value in test_values)
  {
    if (test_value.Equals(item))
    {
      return true;
    }
  }

  return false;
}
Run Code Online (Sandbox Code Playgroud)