수색…


비고

스칼라는 심볼 이라는 개념, 즉 인턴된다 . 즉, 문자열과는 달리 이름이 같은 두 심볼 (같은 문자 시퀀스)은 실행 중에 동일한 객체를 참조한다.

기호는 Lisp, Ruby, Erlang 등 많은 언어의 기능입니다. 그러나 Scala에서는 기호가 비교적 사용되지 않습니다. 그럼에도 불구하고 좋은 특징.

용도:

작은 따옴표와 리터럴 시작 ' 하나 개 이상의 숫자 다음은 편지, 또는에서-점수 _ 문자 상징이다. 첫 문자는 숫자가 될 수 없으므로 예외입니다.

좋은 정의 :

'ATM
'IPv4
'IPv6
'map_to_operations
'data_format_2006

// Using the `Symbol.apply` method

Symbol("hakuna matata")
Symbol("To be or not to be that is a question")

나쁜 정의 :

'8'th_division
'94_pattern
'bad-format

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"))
}

우리는 Symbol 대신 String 을 잘 사용할 수있었습니다. 우리는 그렇지 않습니다. 문자열의 특징 중 어느 것도이 문맥에서 유용하지 않기 때문입니다.

이렇게하면 코드가 단순 해지고 오류가 발생하지 않게됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow