Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala隐式参数在无形库中的应用_Scala - Fatal编程技术网

Scala隐式参数在无形库中的应用

Scala隐式参数在无形库中的应用,scala,Scala,我是Scala新手,我正在使用无形状库来操作元组。(虽然这并不是特定于Shapess的) 我遇到了一个与隐式参数有关的问题,我不太明白。以下是签名: def reverse(implicit reverse: Reverse[T]): reverse.Out = reverse(t) def drop[N <: Nat](implicit drop: Drop[T, N]): drop.Out = drop(t) 但是,在Scala 2.10上,我遇到了以下错误: 错误:(25,37)找

我是Scala新手,我正在使用无形状库来操作元组。(虽然这并不是特定于Shapess的)

我遇到了一个与隐式参数有关的问题,我不太明白。以下是签名:

def reverse(implicit reverse: Reverse[T]): reverse.Out = reverse(t)
def drop[N <: Nat](implicit drop: Drop[T, N]): drop.Out = drop(t)
但是,在Scala 2.10上,我遇到了以下错误:

错误:(25,37)找不到参数reverse的隐式值: shapeless.ops.tuple.Reverse[(字符串,字符串,字符串)] val zzy=(“foo”、“bar”、“other”)。相反

错误:(29,37)没有足够的参数用于方法反向:(隐式) reverse:shapeless.ops.tuple.reverse[(字符串,字符串, (字符串)])反向输出。未指定值参数反向。 val foo=(“foo”、“bar”、“other”)。相反


我不确定它试图引用的隐式参数是什么,或者我为什么需要它。此外,这似乎适用于2.11(但IntelliJ将其标记)

在Scala 2.10.x上,您需要在构建中包含宏天堂插件:请参阅Shapess文档

IntelliJ经常报告针对使用Scala类型系统的某些方面的代码的虚假错误,而这些方面IntelliJ没有足够的支持。这对于使用依赖方法类型的代码尤其如此,这些依赖方法类型在do上方使用
reverse
drop
(注意,方法的结果类型取决于参数值)。在所有情况下,命令行编译器都是权威的

val foo = ("foo","bar","other").reverse
val bar = ("foo","bar","other").drop(1)
                                ^