복붙노트

[SCALA] 스칼라의 기호 리터럴에 대한 몇 가지 예를 들어, 사용 사례는 무엇입니까?

SCALA

스칼라의 기호 리터럴에 대한 몇 가지 예를 들어, 사용 사례는 무엇입니까?

기호 리터럴의 사용은 바로 내가 스칼라에 최대 읽은에서 삭제되지 않습니다. 겠습니까 누구 관리는 어떤 실제 사용을 공유하는 방법을?

기호 리터럴에 포함되는 특정 자바 관용구가 있습니까? 어떤 언어는 비슷한 구조를 가지고? 나는 파이썬 배경에서오고 및하지 않도록 해당 언어로 비슷한 것도이있다.

어떤이 "Helloworld"대 '하여 HelloWorld를 사용하는 나에게 동기를 부여까요?

감사

해결법

  1. ==============================

    1.자바 측면에서, 기호 억류 문자열입니다. 이러한 수단은, 예를 들면, (자바 당량 스칼라 및 ==)이 기준 동등성 비교 정상 동등 비교 같은 결과 준다 (스칼라를 == 자바에서와 동일), 「ABCD 당량 'ABCD가하면서 진정한 반환 " ABCD "당량"abcd와 "수도 있지, JVM의 변덕에 따라 (물론, 그것을해야 리터럴 있지만 일반적으로 동적으로 생성 된 문자열).

    자바 측면에서, 기호 억류 문자열입니다. 이러한 수단은, 예를 들면, (자바 당량 스칼라 및 ==)이 기준 동등성 비교 정상 동등 비교 같은 결과 준다 (스칼라를 == 자바에서와 동일), 「ABCD 당량 'ABCD가하면서 진정한 반환 " ABCD "당량"abcd와 "수도 있지, JVM의 변덕에 따라 (물론, 그것을해야 리터럴 있지만 일반적으로 동적으로 생성 된 문자열).

    (: ABCD) 기호를 사용하여 다른 언어는 리스프 (스칼라와 같은 어떤 용도 'ABCD), 루비입니다, 얼랑 및 프롤로그 (ABCD, 그들은 대신에 기호 원자라고합니다).

    내가 문자열의 구조에 관심 뭔가의 이름으로 순수하게 사용하지 않을 때 나는 기호를 사용합니다. 나는 "가격"이라는 이름의 열이 포함되어 CD를 나타내는 데이터베이스 테이블을 가지고 예를 들어, 나는 "가격"의 두 번째 문자가, 또는 열 이름을 연결에 대해 "R"는 것을 걱정하지 않는다; 그래서 스칼라에서 데이터베이스 라이브러리는 합리적으로 테이블 및 열 이름에 대한 기호를 사용할 수 있습니다.

  2. ==============================

    2.당신은 아마도 건네받을 것을, 코드에서 말하는 방법 이름을 나타내는 일반 문자열이있는 경우, 당신은 매우 적절하게 물건을 전달 아닙니다. 이것은 선을 그리 쉽게 항상 아니지만, 우리가 그 예에서 그 메소드 이름들이 데이터보다 더 많은 코드 있다고 말한다면, 우리는 것을 식별 분명히 뭔가를하려면, 정렬 데이터 / 코드 경계 문제입니다 .

    당신은 아마도 건네받을 것을, 코드에서 말하는 방법 이름을 나타내는 일반 문자열이있는 경우, 당신은 매우 적절하게 물건을 전달 아닙니다. 이것은 선을 그리 쉽게 항상 아니지만, 우리가 그 예에서 그 메소드 이름들이 데이터보다 더 많은 코드 있다고 말한다면, 우리는 것을 식별 분명히 뭔가를하려면, 정렬 데이터 / 코드 경계 문제입니다 .

    상징 리터럴은 분명히 구조와 단지 오래된 문자열 데이터는 코드에서 사용되는 차별화 놀이로 제공됩니다. 그것은 당신이 표시 할 위치, 이것은 단지 일부 문자열 데이터가 아니라 코드의 어떤 방법 부분에서 사실 정말이있다. 당신의 IDE처럼 생각되는 일들이 당신은 교체 / 대신 텍스트 검색을하는 것보다, 그에 리팩토링 수, 금형 주어진 다르게 강조 표시 한 것이다.

    이 링크는 매우 잘 대해 설명합니다.

  3. ==============================

    3.파이썬 mantains이 테이블 등등 모든 변수, 함수, 모듈의 이름과 함께 "구금 문자열"의 내부 글로벌 테이블은 인터프리터는 빠른 검색 수 및 최적화를 할 수 있습니다. 당신은 (python3에 sys.intern) 인턴 기능이 프로세스를 강제 할 수 있습니다.

    파이썬 mantains이 테이블 등등 모든 변수, 함수, 모듈의 이름과 함께 "구금 문자열"의 내부 글로벌 테이블은 인터프리터는 빠른 검색 수 및 최적화를 할 수 있습니다. 당신은 (python3에 sys.intern) 인턴 기능이 프로세스를 강제 할 수 있습니다.

    또한, 자바와 스칼라가 자동으로 빠른 검색 수는 "구금 문자열"을 사용합니다. 스칼라, 당신은 문자열의 인턴을 강제로 인턴 방법을 사용할 수 있지만,이 과정은 모든 문자열과 함께 작동 않습니다. 기호는 하나의 참조 평등 검사를 평등 또는 불평등을 증명 모두 충분하므로, 인턴이 보장되는 혜택을 누릴 수 있습니다.

  4. from https://stackoverflow.com/questions/780287/what-are-some-example-use-cases-for-symbol-literals-in-scala by cc-by-sa and MIT license