- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个源自 AUX 的问题模式。
这样定义特征有什么好处:
trait Unwrap[T[_], R] {
type Out
def apply(tr: T[R]): Out
}
反对这个?
trait Unwrap[T[_], R, Out] {
def apply(tr: T[R]): Out
}
第二个特征定义消除了使用 AUX 模式的必要性。
谢谢!
最佳答案
您使用 Aux
模式的原因在您的示例中没有明确定义。当 Aux
提供的类型的值尚不清楚时就会出现问题,这在大多数情况下意味着派生,更具体地说是宏/编译时类型派生。
这在 Shapeless 中被广泛使用。
def test[V1, HL](input: V1)(implicit ev: Generic.Aux[V1, HL])`
当你写这个的时候,你可能认为 HL
是 Aux
的输入类型,但它实际上是 Generic
宏中的输出,作为消耗品提供给 Aux
,例如,输出被神奇地“注入(inject)”到 HL 中,因此可以通过 HL< 访问由
超出该调用站点。Generic.Aux
计算的输出类型
它的存在是为了规避编译器限制,如果您在同一个参数组中有多个隐式,其中一个隐式取决于前一个的 Aux
宏输出。
粘贴自 The Scala Bible, New Testament, Gospel of Miles :
* More importantly, Aux allows us to write code like this:
*
* {{{
* def myMethod[T, R]()(implicit eqGen: Generic.Aux[T,R], repEq: Eq[R]) = ???
* }}}
*
* Here, we specify T, and we find a Generic.Aux[T,R] by implicit search. We then use R in the second argument.
* Generic.Aux[T, R] is exactly equivalent to Generic[T] { type Repr = R }, but Scala doesn't allow us to write
* it this way:
*
* {{{
* def myMethod[T, R]()(eqGen: Generic[T] { Repr = R }, reqEq: Eq[egGen.Repr]) = ???
* }}}
关于scala - AUX 模式解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50977833/
我正在尝试从 Windows 7 上的 JDK 7u25 中使用 jar.exe 提取包含名为 aux.class 的文件的 .jar 的内容。 jar.exe xf C:\Path\to\file.
这似乎是一个愚蠢的问题,但我一直无法找到明确的答案。 This website指出破折号是可选的 ps aux 然而,ps aux有效但 ps -aux出现错误 no user named 'x' .
我有一个 bash 脚本 (ScreamDaemon.sh),在其中添加了检查它的示例是否已经运行的检查。 numscr=`ps aux | grep ScreamDaemon.sh | wc -l`
我有一个 bash 脚本 (ScreamDaemon.sh),在其中添加了检查它的示例是否已经运行的检查。 numscr=`ps aux | grep ScreamDaemon.sh | wc -l`
我刚刚在 Windows 8.1 上遇到了一个非常奇怪的错误。 我似乎无法创建名为 Aux 的文件夹或从 Aux. 开始. 我在每个磁盘上都尝试过,但每次都收到以下消息:Le nom du périp
在Windows上Cygwin制作一些程序给出 libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'. libto
这是一个源自 AUX 的问题模式。 这样定义特征有什么好处: trait Unwrap[T[_], R] { type Out def apply(tr: T[R]): Out } 反对这
我很确定我在这里遗漏了一些东西,因为我对 Shapeless 还很陌生并且我正在学习,但是 Aux 技术实际上什么时候开始需要 ?我看到它是用来暴露一个 type通过将其提升为另一个“同伴”的签名来声
运行 ps aux返回: USER 131 2.1 0.1 23423 423 FFF/5 R 10:12 0:00 -bash USER 131 2.1 0.
我想了解如何 Generic有效(还有 TypeClass)。 github wiki 在示例和文档上非常稀少。是否有规范的博客文章/文档页面描述 Generic和 TypeClass详细? 具体来说
在 VS2012 中似乎无法创建名为“Aux”的项目文件夹。如果您尝试在项目中添加一个文件夹并将其命名为“Aux”,则会出现一条错误消息,指出该文件夹名称不能包含 ;*?|"<>哦 你遇到过同样的情况
for i in `ps aux | grep /usr/bin/x2goruncommand | awk '{print $1,$13;}'`; do server=`echo $i | cut -
我有一个系统脚本,它运行并将“ps aux | grep utilities”的结果通过管道传输到一个文本文件,并对文本文件进行 chown,以便网络服务可以读取该文件并在我的网络应用程序中显示结果。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
这个问题在这里已经有了答案: Windows and renaming folders, the 'con' issue [closed] (5 个答案) 关闭 6 年前。 在尝试写入文件名为“au
我想知道这种将 ps aux 放入数组然后在网络上显示的安全方法吗?或者可以做些什么来改进它? 例子: PID CPU Mem
所以我试图找到其中包含“控制”一词的任何进程的 PID。我在 Linux 上使用 ruby 。这是目前为止的基本代码 `ps aux | grep control` 如果我在 ruby 中运行它,
当我执行“ps aux”时,很多行都比我的终端宽度长,而且没有换行到下一行。起初我以为这是我的 stty 设置,但我注意到 netstat 等其他命令在我的终端中换行。我宁愿不要被迫使用 less 或
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我对 Aux 模式(在 shapeless 和其他地方使用)有一些了解,其中将类型成员提取到类型参数中,并且我知道这是一种解决方法,即同一参数列表中的参数不能依赖彼此 - 但我一般不清楚它的用途和解决
我是一名优秀的程序员,十分优秀!