Scala 宏:定义顶级对象

2023-12-14

我看了type macros对于斯卡拉。但是当我想从示例创建对象时,我收到错误:

Example.scala:7: `=', `>:', or `<:' expected
type Test(url: String) = macro impl

Example.scala:12: illegal start of simple expression
val clazz = ClassDef(..., Template(..., generateCode()))

Code:

//Example.sbt
object Example {

  type Test(url: String) = macro impl

  def impl(c:Context)(url: c.Expr[String]):c.Tree = {
    import c.universe._
    val name = c.freshName(c.enclosingImpl.name).toTypeName
    val clazz = ClassDef(..., Template(..., generateCode()))
    c.introduceTopLevel(c.enclosingPackage.pid.toString, clazz)
    val classRef = Select(c.enclosingPackage.pid, name)
    Apply(classRef, List(Literal(Constant(c.eval(url)))))
  }
} 

斯卡拉版本:2.10.2

From: 类型宏


如果真那么容易就好了!从文档您链接到:

类型宏是所谓的宏中包含的预发布功能 Paradise,官方 Scala 存储库中的一个实验分支。 按照“微距天堂”页面的说明进行下载并 使用我们的夜间构建。

And:

请注意,由于二进制兼容性限制,宏 2.10.x 的天堂不包含宏天堂的任何功能 2.11.x,准引号除外。

所以你必须搬到微距天堂如果你想让它工作,请选择 2.11 的分支。

另请注意,...类型宏文档中的 旨在指示省略的代码 - 您不能只是复制并粘贴它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 宏:定义顶级对象 的相关文章

  • 向数据框添加新列的问题 - Spark/scala

    我是 Spark scala 的新手 我正在尝试将一些数据从配置单元表读取到 Spark 数据帧 然后根据某些条件添加一列 这是我的代码 val DF hiveContext sql select from select from test
  • 组合多个任意长度的列表

    我正在寻找一种通过以下方式加入多个列表的方法 ListA a b c ListB 1 2 3 4 ListC Resulting List a 1 b 2 c 3 4 换句话说 元素按顺序排列 从第一个列表开始组合到结果列表中 任意数量的输
  • 在 Scala 中是否可以指定匿名函数的返回类型?

    我知道您可以创建一个匿名函数 并让编译器推断其返回类型 val x gt System currentTimeMillis 只是为了静态类型的缘故 是否也可以指定其返回类型 我认为这会让事情变得更加清晰 val x gt System cu
  • 在 Java 中使用 Scala 常量

    我目前正在评估 Scala 的未来项目 并发现了一些奇怪的事情 我在 JSP 中为我们创建了以下常量 val FORMATED TIME formatedTime 但这没有用 经过一番尝试后 我决定反编译以了解其真相 private fin
  • Playframework 2.0 在视图模板中定义函数

    我正在开发一个使用 PlayFramework 2 0 的项目 在阅读了一些 scala 之后 我想在视图模板中嵌入一些动态代码 所以 我做了以下事情 def getMystring sequence Int if patternForm
  • 为什么我的代码在 Spark Pregel 中执行需要很长时间?

    我在 Spark 中使用 Pregel 编写了处理图形的代码 但对于小数据集来说 它的执行速度非常非常慢 我以前用pregel写过程序 但是这段代码运行速度确实很慢 我的集群由 2 个工作人员组成 每个都有核心 i5 CPU 和 6 GB
  • 自动将通配符导入重构为 IntelliJ 中的显式导入(适用于 Scala/Java)

    考虑下面的代码 是否可以让 IntelliJ 自动将每个通配符导入重构为显式导入 无论范围内使用什么 例如import scalatags JsDom all into import scalatags JsDom all ol li di
  • 有没有好的 Clojure 基准测试?

    Edit Clojure 基准测试已达到基准游戏 http benchmarksgame alioth debian org u64q clojure html 我已经制作了这个问题社区维基并邀请其他人保持更新 有人知道 Clojure 性
  • scala 中的模拟案例类:Mockito

    在我的游戏应用程序中 我打算模拟一个案例类 我可以这样做 但它创建了一个所有成员变量都为空的对象 有没有办法创建案例类的模拟对象 以便该对象可以初始化一些成员 case class User name String address Stri
  • 从会话中读取数据时如何发出加特林捕获请求?

    根据加特林文档 http gatling io docs 2 1 7 session session api html 我可以在执行场景时使用会话属性 但是 每次我在场景中使用函数文字访问会话时 都会遇到以下异常 error java la
  • 用 HashMap[Int, Vector[Int]] (Scala) 表示图(邻接列表)?

    我想知道如何 如果可能的话 我可以通过以下方式制作 可变 图的邻接列表表示HashMap Int Vector Int HashMap当然是可变的 目前我将其设置为HashMap Int ArrayBuffer Int 但我可以更改 Arr
  • 使用无形类型不等式时如何自定义 Scala 模糊隐式错误

    def typeSafeSum T lt Nat W lt Nat R lt Nat x T y W implicit sum Sum Aux T W R error R 7 x typeSafeSum 3 4 compilation er
  • Scala 中缺少多重集吗?

    我正在尝试 Scala 中的 Facebook Hacker Cup 2013 资格赛问题 对于第三个问题 我觉得需要一个有序的 Multiset 但在 scala 的 2 10 集合中找不到一个 scala 的集合中是否缺少此数据结构 会
  • 如何向数据框spark添加标题和列?

    我有一个数据框 我想在其中添加标题和第一列 手动 这是数据框 import org apache spark sql SparkSession val spark SparkSession builder master local appN
  • Scala 中的行聚合

    我正在寻找一种方法在 Scala 的数据框中获取一个新列来计算min max中的值col1 col2 col10对于每一行 我知道我可以使用 UDF 来做到这一点 但也许有一种更简单的方法 Thanks Porting 这个Python答案
  • Scala 功能设计模式目录

    一周以来我一直在阅读 Scala 编程 作者一步一步地介绍了该语言的元素 但我仍然很困惑何时使用演员 闭包 柯里化等功能性的东西 我正在寻找功能结构的典型用例或最佳实践的目录 我并不是说在 Scala 中重新实现像 GoF 这样的众所周知的
  • 创建自定义 scala 集合,其中映射默认返回自定义集合?

    特质TraversableLike A Repr 允许人们在其中进行收藏some函数将返回一个Repr 而其他人则继续返回类型参数That在功能上 有没有办法定义一个CustomCollection A 其中函数如map 其他的默认That
  • Scala 将递归有界类型参数(F 界)转换为类型成员

    我将如何转换 trait Foo A lt Foo A 给类型成员 也就是说 我想要以下内容 trait Foo type A lt Foo type A 但我遇到了困难 因为名称 A 已在类型细化中使用 这个问题是类似的 并衍生自 通过类
  • scala.math.BigDecimal :1.2 和 1.20 相等

    将 Double 或 String 转换为 scala math BigDecimal 时如何保持精度和尾随零 用例 在 JSON 消息中 属性的类型为 String 值为 1 20 但是在 Scala 中读取这个属性并将其转换为 BigD
  • Scala 匿名函数中的 return 语句

    为什么显式 return 语句 使用return关键字 在匿名函数中从封闭的命名函数返回 而不仅仅是从匿名函数本身返回 例如 以下程序会导致类型错误 def foo String x Integer gt return x foo 我知道建

随机推荐

  • 如何使用 JMeter 中的正则表达式提取器提取某些值?

    如果我有两个相同的标签和相同的属性 唯一的区别是值 我如何提取第二个
  • 网络聊天是否有“重置”按钮?

    开箱即用的网络聊天默认按钮集是 发送 按钮和 上传文件 按钮 网络聊天是否有可用的 重置 按钮 可以结束当前对话并为同一用户从头开始新对话 是否需要打开一些配置或样式选项才能直观地看到 重置 按钮 聊天 对话历史记录需要保持完整 它不应该清
  • 验证 python passlib 生成的密码哈希值

    我需要验证使用 python 生成的密码哈希值passlib 我的目标是使用 passlibpbkdf2 sha512对所有用户密码进行哈希处理的方案 但是 由于我们后端的性质 我需要从 php 脚本 js 和 java 验证此密码 我还没
  • 在 C 中调用 GNU Octave 函数?

    我想使用矩阵代数和优化 我已经测试了不同的矩阵代数 C 和 C 库 但这些库的问题是它们不能像 GNU Octave 那样处理垃圾数据 C 和 C 中的垃圾数据会降低到 e 8 但在 GNU Octave 中 它将降低到 e 17 如果您计
  • Razor 类库也可以打包静态文件(js、css 等)吗?

    Maybe 与此重复已经 但由于该帖子没有任何答案 我发布这个问题 The new 剃刀类库很棒 但它不能打包库文件 如 jQuery 共享 CSS 我能否以某种方式在多个 Razor 页面项目中重用 CSS 无论是使用 Razor 类库还
  • Android 可以替代 jtable 吗?

    android 3 x sdk 11 或更高版本 是否有类似于 jtable 对象的小部件 我不是从头开始开发一个小部件 使用 gridview 或 tablelayout 而是寻找一个随时可用的小部件 TIA Bob 更新 我发现了这篇优
  • iPhone sdk调用拦截

    我们正在开发一个应用程序 该应用程序的功能是 当我们自动接到电话时 我们必须通过短信 语音消息回复 那么 您能告诉我们在iPhone中是否可以实现 如果意味着指导我们构建该应用程序 提前致谢 布莱特 拉吉 目前的SDK无法以这种方式访问 手
  • 如何获取 pygtk 窗口的大小?

    我正在尝试使用 gtk window get size 但它总是只返回默认的宽度和高度 文档说 get size 方法返回一个包含当前宽度和 窗户的高度 如果窗口不在屏幕上 则返回 PyGTK 将向窗口管理器建议初始窗口的大小 尺寸 get
  • 将科学记数法转换为十进制 pandas python

    可能这是一个老问题 我在下面发现了类似的问题 但我仍然可以在输出文件中看到科学记数法 抑制 pandas 中的科学记数法 熊猫读科学计数法并改变 Python Pandas 科学记数法不一致 我尝试合并set option and df a
  • 扩展 EntityType 以允许通过 AJAX 调用设置额外的选择

    我尝试创建 Symfony 自定义类型延伸核心 entity type 但我想用它选择2版本4 0 0 ajax 现在适用于 select html 元素 而不是像以前那样适用于隐藏的 input 此类型应创建一个空选择 而不是扩展 实体
  • 从 const 成员函数中将“this”返回为非常量

    我想在类上进行方法链接Point below include
  • Curl 无法验证 Verisign 颁发的通配符 SSL 证书

    我有一个脚本需要使用 cURL 安全连接到网站 foo bar com 该网站由 bar com 的通配符 SSL 证书覆盖 通配符证书由 Verisign 颁发 所有浏览器都信任它 没有任何问题 但是 我无法让 PHP cURL 连接 至
  • VS Code 仅显示 1 行可能的导入路径。如何将其转换回默认列表框?

    我想我在 vs code 中做了一些设置更改 这使得我的导入语句看起来像这样 默认 VS Code 导入预览显示 3 个或更多路径 我应该更改什么选项才能将其恢复为默认列表框视图 我的设置 json 上次 vscode 更新到 v1 51
  • UITableView 在设备旋转后纠正滚动位置

    我正在构建类似书籍阅读器的东西 当用户旋转手机时我想增加字体大小 我正在使用一个UITableView显示文本块 问题是 增加字体大小会增加表格视图中行的高度 如果我在纵向模式下阅读第 320 段 我会在横向模式下得到 280 或类似的内容
  • 使用 JQuery 动态加载列表项

    我想构造我的 JQuery 以一次淡入每个单独的项目 这是行为的一个例子 这是我迄今为止拥有的 JQuery li css display none delay 1000 fadeIn 800 这可能不是最好的解决方案 但它应该有效 li
  • Windows 窗体的大小是否包括其边框?

    当您设置窗口窗体的大小时 即 Form1 Size new System Drawing Size 700 500 这是否包括窗口在窗体周围放置的边框 因为我已经将 700x500 的图像 通过 pictureBoxes 添加到我的表单中
  • 如何通过 $http 将 angular-ui 的 typeahead 与服务器绑定以进行服务器端优化?

    预输入示例 http angular ui github io bootstrap typeahead 提到在这个自动完成中实现后端很容易 但没有提供示例 我特别感兴趣的是找出当前输入的字符串 以便我可以发送that到服务器并发回已经过滤的
  • NSDateFormatter 和日本日历

    当用户不使用公历作为 iPhone 的默认日历时 我在使用 NSDateFormatter 时遇到问题 NSString testString 2011 01 14 NSDateFormatter dateFormat NSDateForm
  • 在c#中将值参数传递给任务

    我在将 long 按值传递给任务时遇到问题 我有一个 ID 列表 我循环遍历每个 ID 分配给局部变量 然后作为参数传递给新任务 在循环并处理下一个 ID 之前 我不会等待任务完成 我保留了一系列任务 但这无关紧要 loop long ID
  • Scala 宏:定义顶级对象

    我看了type macros对于斯卡拉 但是当我想从示例创建对象时 我收到错误 Example scala 7 gt or lt expected type Test url String macro impl Example scala