替換 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。我們沒有,因為在這種情況下字串的功能都沒有用。

這使程式碼更簡單,更不容易出錯。