복붙노트

[SCALA] 무엇을 Predef.locally 수행 방법 Predef.identity에서 그 차이가 않습니다

SCALA

무엇을 Predef.locally 수행 방법 Predef.identity에서 그 차이가 않습니다

스칼라 2.8 PREDEF 클래스를 통해 보면서, 나는 "로컬"하는 방법이있다는 사실을 알게 될 것입니다. 내가 말할 수있는 근처로, 그것은 "@inline"주석을 가진 제외 Predef.identity 동일합니다. 무엇을 위해 그것을, 그리고 왜 중요한만큼 PREDEF에있을 (그리고 스칼라에 따라서 사용 가능한 어디서나)입니다?

해결법

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

    1.그것은 여기에 설명되어 있습니다 : http://www.scala-lang.org/node/3594

    그것은 여기에 설명되어 있습니다 : http://www.scala-lang.org/node/3594

    아이디어는 특성 객체 / 클래스 /의 템플릿으로 '매달려'지역 블록을 혼란의 프로그래머 오류를 방지하는 것이 었습니다.

    object test {
      object a
      {
        val x = 1
      }
    
      object b
    
      { // oops, extra newline disassociates this block with the object b
        val x = 1
      }
    }
    test.a.x
    //test.b.x // doesn't compile
    

    프로그래머가 정말 블록이 독립적하고자하는 경우, 로컬로 사용할 수 있습니다 :

    object test {
      object a
      {
        val x = 1
      }
    
      object b
    
      locally {
        val x = 1
      }
    }
    

    이 스레드는 첫 번째 코드는 사용 중단 경고를 생산할 것이라고 제안했다. 이것은 아직 추가되지 않았습니다.

  2. from https://stackoverflow.com/questions/3237727/what-does-predef-locally-do-and-how-is-it-different-from-predef-identity by cc-by-sa and MIT license