我对这个符号<:以及返回类型T => T感到困惑。 这似乎返回一个函数。单元测试此功能时,我得到了一个功能。如何查看结果?
def prepend[T <: Message](node: Set[String]): T => T = { out =>
...
out.append("test")
}
答案 0 :(得分:3)
val t: T=>T = prepend(...)
表示T应该是扩展Message的任何类型。
现在函数相等/同构是不可能的TTBOMK。这意味着无法比较a == b,其中a:T =&gt; T和b:T =&gt; T。
您只能生成随机输入并确认它们给出相同的结果。不是平等的证明,但它可能总比没有好。
如果您的结果为t
,则可以t(some T)
作为static void setName(const char* str, char buf[16])
{
int sz = MIN(strlen(str), 16);
for (int i = 0; i < sz; i++) buf[i] = str[i];
buf[sz] = 0;
}
int main()
{
const char* string1 = "I am getting bug for this long string greater than 16 lenght);
char mbuf[16];
setName(string,mybuf)
// if I use buf in my code it is leading to spurious characters since length is greater than 16 .
运行。