scala-macros

    0

    2답변

    자바 클래스 100 개에 보관 된 정보를 기반으로 스칼라에서 사례 클래스를 생성하는 방법은 무엇입니까? 기본적으로 자바 라이브러리에 대한 래퍼를 작성하는 데 필요합니다. 심지어 가능합니까? 그 기분이 안돼. 이 경우 가장 좋은 대안은 무엇입니까?

    1

    1답변

    def control(x: String): Option[String] = macro controlImpl def controlImpl(c: Context)(x: c.Expr[String]): c.Expr[Option[String]] = { import c.universe._ val result = x.tree match { c

    6

    1답변

    나는 다음과 같은 코드가 있습니다 object Macros { import scala.language.experimental.macros import scala.reflect.macros.blackbox def hello(): Unit = macro hello_impl def hello_impl(c: blackbox

    1

    1답변

    매크로가 있고 그 매크로의 일부는 특정 메소드의 모든 호출을 다른 것으로 바꿉니다. 이를 수행하기 위해 Transformer을 사용하고 transform 메소드를 입력 한 모든 Tree을 일치 시키려고 시도합니다. 아래처럼 쓰면 효과가있는 것 같습니다. package mypackage object myobject { implicit def my

    2

    2답변

    제 3 자 어노테이션 전 처리기에서 생성 한 일부 Java 클래스를 기반으로 스칼라 클래스를 작성하려고합니다. 내가 예를 들어 주석 객체에서 클래스 "포인트", 수 있도록하고 싶습니다 : @MyAnnotation(classOf[GeneratedJavaClass]) object MyObject 또는 @MyAnnotation object MyObject e

    0

    1답변

    필자는 사례 클래스에 주석을 달기 위해 사용되는 스칼라 매크로 주석 @model을 작성하고 있으며, 주석 클래스의 컴패니언 객체에 일부 메타 데이터를 자동으로 추가합니다. 주석 된 사례 클래스. 사례 클래스의 매개 변수 유형에 대한 자세한 정보를 얻고 싶습니다. 특히 특정 특성을 구현하는지 확인하고 싶습니다. 나는 그들에게 WeakTypeTag을 얻는 것이

    5

    1답변

    형식 멤버가 형식 매개 변수로 추출되는 Aux 패턴 (셰이프리스 (shapeless) 및 다른 곳에서 사용됨)이 약간 있습니다. 동일한 인수 목록의 인수가 ' 서로 의존하지만, 일반적으로 그것이 무엇을 위해 사용되고 어떤 문제가 해결되는지 명확하지 않습니다. 예를 들어, 현재 화이트 박스 매크로에 의해 반환 된보다 구체적인 유형을 보존하고 작업하는 방법을

    0

    1답변

    주석이 달린 특성이 주어지면이 특성을 구현하는 추상 클래스를 어떻게 생성해야합니까? 그래서 , 주어진 다음의 사용자 특성 ... @Neuron trait SomeTrait { // ... } 은 ... 내 도서관에서 내가 좋아하는 뭔가를 삽입 할 다음 그 옆에 : 내가 아는 abstract class SomeTraitImpl extends

    1

    1답변

    블랙 박스 매크로에서 for yield 블록을 내보내려고했지만 유효한 구문으로 블록을 만드는 방법을 이해하지 못했습니다. 따라서 source은 하드 코드 된 매개 변수 이름입니다. 나중에이 블록이 일치하는 매개 변수 이름을 가진 메서드 내에 삽입됩니다. params은 필드를 감싸는 단지 params: Seq[c.universe.ValDef]입니다. def

    2

    1답변

    Getting Parameters from Scala Macro Annotation은 매크로 주석에서 매개 변수를 가져 오는 방법을 설명합니다. 나는 몇 가지 기본 값으로 매개 변수가있는 경우에는 : class Foo(b: Boolean = false, i: Int = 0) extends StaticAnnotation { ... } 을 나는 val (b