替换 case 子句中的字符串

假设我们有多个数据源,包括数据库,文件,提示argumentList 。根据所选来源,我们改变了我们的方法:

def loadData(dataSource: Symbol): Try[String] = dataSource match {
  case 'database => loadDatabase() // Loading data from database
  case 'file =>  loadFile() // Loading data from file
  case 'prompt => askUser() // Asking user for data
  case 'argumentList => argumentListExtract() // Accessing argument list for data
  case _ => Failure(new Exception("Unsupported data source"))
}

我们可以很好地使用 String 代替 Symbol。我们没有,因为在这种情况下字符串的功能都没有用。

这使代码更简单,更不容易出错。