代码之家  ›  专栏  ›  技术社区  ›  SomeGuyOnAComputer Joril

什么时候在函数中使用字符串参数是好是坏?[关闭]

  •  1
  • SomeGuyOnAComputer Joril  · 技术社区  · 6 年前

    前几天我看到一个pull请求,在一个没有修改字符串的函数中有一个字符串作为参数。相反,字符串被用来在函数的功能之间切换。

    这样做的优点和缺点是什么?与创建 getNewTableVersion / getOldTableVersion 省略 tableType 参数?

    public static String getTableVersion(String prefix, String tableVersion, String tableType) {
        String[] tableVersions = tableVersion.split(prefix);
        Integer version;
        switch (tableType) {
          case "new":
            // set version to newer one
          case "old":
            // set version to older one
          default:
            // default functionality
        }
    
        return prefix + version.toString();
    }
    

    坦白说,我认为这是一种不好的做法。我想有了一个正反两方面的清单,我可以说服开发人员不要这样做。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Bart Friederichs    6 年前

    我认为这是一个糟糕的实践,因为你不能从原型中推断出函数的功能。它散发着魔法常数的气味。

    如果你想做这样的事情,可以选择使用 enum 限制 tableType 参数。