我正在尝试使用HUnit以TDD方式在Real World Haskell中进行练习.你可能已经猜到我还没有走得太远,所以当谈到Haskell时,我是一个绝对的初学者.鉴于以下代码,我如何解决ghci产生的以下错误:
不明确的类型变量在List_Test.hs中显示由于使用"assertEqual"而产生的"
a' in the constraints:使用assertEqual' at List_Test.hs:6:27-58Eq a":6:27-58可能的修复:添加修复这些类型变量的类型签名
List_Test.hs:
module List_Test
where
import List
import Test.HUnit
fromEmptyList = TestCase $ assertEqual "" [] (toList (Nil))
main = runTestTT fromEmptyList
Run Code Online (Sandbox Code Playgroud)
List.hs:
module List
where
data List a = Cons a (List a)
| Nil
deriving (Show)
toList Nil = []
toList (Cons a b) = (:) a (toList b)
Run Code Online (Sandbox Code Playgroud)
我已经尝试将类型约束添加到List声明和toList定义,但没有成功.互联网搜索也没有提供任何信息.
我认为以前没有问过这个问题.我IDisposable对在密封类上实现的最佳方法感到困惑- 特别是一个不从基类继承的密封类.(也就是说,这是一个"纯密封的类",这是我的术语.)
也许你们有些人同意我的观点,因为实施指南IDisposable非常混乱.也就是说,我想知道我打算实施的方式IDisposable是充分和安全的.
我正在做一些P/Invoke代码,分配一个IntPtr通过Marshal.AllocHGlobal,自然,我想干净地处理我创建的非托管内存.所以我在考虑这样的事情
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public sealed class MemBlock : IDisposable
{
IntPtr ptr;
int length;
MemBlock(int size)
{
ptr = Marshal.AllocHGlobal(size);
length = size;
}
public void Dispose()
{
if (ptr != IntPtr.Zero)
{
Marshal.FreeHGlobal(ptr);
ptr = IntPtr.Zero;
GC.SuppressFinalize(this);
}
}
~MemBlock()
{
Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
我假设因为MemBlock完全是密封的,并且永远不会从另一个实现a的类中派生出来virtual protected Dispose(bool disposing).
那么,终结者是否必须?欢迎所有的想法.
我有记录(联系人,地址等),以下任何一个都可以访问(包括组合,例如2组和4个人):
实现这一目标的数据库结构是什么?基本上在我的应用程序中,我需要能够限制用户XYZ何时登录,以便仅向他显示作为个人,组成员"可见"的记录,或者因为它们对每个人都可见.
基本上我正在寻找一种有效存储这些关系的方法.它应该很快,因为每当有人看到任何东西时我都会关注这些关系.
我真的很感激有关如何做到这一点的一些提示!
谢谢!
编辑:我正在使用SQL Server 2008网络版.
有没有人知道是否有类似于Ruby的Sinatra的.NET库/ API ?
只是想知道自从ASP.NET MVC,WCF和.NET 3.5中的新路由API以来,它似乎是一种可能性.
释放对象后最好将指针设置为nil?多数民众赞成我一直在做的事情,只是想问一下它是否必要,良好的做法或过度杀伤?
- (void)dealloc{
[planetName release]; // NSString instance variable
[super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)
.
- (void)dealloc{
[planetName release]; // NSString instance variable
planetName = nil;
[super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)
干杯 - 加里 -
尝试用PHP显示当前时间(使用此):
$date = date('m/d/Y h:i:s a', time());
echo $date;
Run Code Online (Sandbox Code Playgroud)
尽可能简单.我该如何本地化?我想把这些月份和日子翻译成希伯来语.
谢谢.
我有一个NSSplitView在左侧我有一个tableView(像源列表),根据行选择,我想改变拆分视图的右侧.我无法弄清楚如何做到这一点.
当我将我想要的子视图添加到splitview时,它会添加另一个分割(所以现在共有3个视图...不是我想要的).
[mySplitView addSubview:myCustomView];
Run Code Online (Sandbox Code Playgroud)
如何正确设置splitView的右侧?
更新
运用
[mySplitView replaceSubview:[[mySplitView subviews] objectAtIndex:1] withSubview:myCustomView]
Run Code Online (Sandbox Code Playgroud)
似乎工作,但它正在调整拆分视图,相当奇怪,我怎么能阻止这个?在IB中有一个关闭选项,autoResizesSubviews但我不能取消选中.有任何想法吗?
一个非常愚蠢的琐碎问题.规范的例子是f = open('filename'),但是
f不是很具描述性.在不查看代码之后,您可以忘记它是否意味着"文件"或"函数f(x)"或"傅里叶变换结果"或其他内容.EIBTI.file已经被一个函数占用了.你还用什么?
刚开始学习C或C++时,是否存在危险知识这样的事情?换句话说,我有可能"意外地"编写和编译格式化硬盘驱动器的代码片段,使操作系统无法使用,或者更糟糕的情况是静默删除计算机上的随机文件?
像名副其实的东西
格式C:/
要么
rm -rf /
如果我刚刚开始修补低级C代码甚至搞乱库,那么需要注意哪些基本事项?
事实上,这些潜在的危险潜伏着什么是保持开发环境沙盒的日常系统的好策略?某些修补区域是否更好地留给虚拟化环境?
不需要进入明确的代码示例,但更一般的建议是我很好奇的.
我认为一个好的经验法则是:在编译和运行一些你在网上找到的随机代码片段之前,一定要了解代码.
注意: 如果相关,我在OS X上.
我认识到一个好的备份系统是无可替代的.黑客攻击破坏你的计算机,最多你失去一天或几小时的工作,并且必须恢复.
"关键字参数"与常规参数有何不同?不能传递所有参数name=value而不是使用位置语法?
python arguments keyword optional-parameters named-parameters
python ×2
.net ×1
arguments ×1
c ×1
c# ×1
c++ ×1
cocoa ×1
explicit ×1
file ×1
frameworks ×1
haskell ×1
hebrew ×1
hunit ×1
keyword ×1
localization ×1
nssplitview ×1
nstableview ×1
objective-c ×1
php ×1
pinvoke ×1
ruby ×1
sinatra ×1
string ×1
testing ×1
time ×1