问题列表 - 第13490页

如何使用带参数化类型的assertEqual

我正在尝试使用HUnit以TDD方式在Real World Haskell中进行练习.你可能已经猜到我还没有走得太远,所以当谈到Haskell时,我是一个绝对的初学者.鉴于以下代码,我如何解决ghci产生的以下错误:

不明确的类型变量在List_Test.hs中显示由于使用"assertEqual"而产生的" a' in the constraints: 使用assertEqual' at List_Test.hs:6:27-58 Eq 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定义,但没有成功.互联网搜索也没有提供任何信息.

testing haskell hunit

3
推荐指数
1
解决办法
264
查看次数

在密封的类上实现IDisposable

我认为以前没有问过这个问题.我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).

那么,终结者是否必须?欢迎所有的想法.

c# pinvoke

24
推荐指数
3
解决办法
7531
查看次数

粒度数据库记录访问权限(例如,组"X"和个人"Smith"可以查看记录Z)

我有记录(联系人,地址等),以下任何一个都可以访问(包括组合,例如2组和4个人):

  • 每个人
  • 多个小组/部门的成员
  • 单个团体/部门的成员
  • 多个人
  • 单身个人

实现这一目标的数据库结构是什么?基本上在我的应用程序中,我需要能够限制用户XYZ何时登录,以便仅向他显示作为个人,组成员"可见"的记录,或者因为它们对每个人都可见.

基本上我正在寻找一种有效存储这些关系的方法.它应该很快,因为每当有人看到任何东西我都会关注这些关系.

我真的很感激有关如何做到这一点的一些提示!

谢谢!

编辑:我正在使用SQL Server 2008网络版.

database-design access-control

8
推荐指数
1
解决办法
629
查看次数

是否有类似于Ruby的Sinatra的.NET框架?

有没有人知道是否有类似于Ruby的Sinatra的.NET库/ API ?

只是想知道自从ASP.NET MVC,WCF和.NET 3.5中的新路由API以来,它似乎是一种可能性.

.net ruby frameworks sinatra

36
推荐指数
3
解决办法
7505
查看次数

发布后将指针设置为nil?

释放对象后最好将指针设置为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)

干杯 - 加里 -

objective-c

15
推荐指数
2
解决办法
3453
查看次数

用PHP本地化当前时间

尝试用PHP显示当前时间(使用):

$date = date('m/d/Y h:i:s a', time());                      
echo $date;
Run Code Online (Sandbox Code Playgroud)

尽可能简单.我该如何本地化?我想把这些月份和日子翻译成希伯来语.

谢谢.

php string time localization hebrew

5
推荐指数
2
解决办法
5247
查看次数

以编程方式设置NSSplitView的一侧

我有一个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但我不能取消选中.有任何想法吗?

cocoa nstableview nssplitview

8
推荐指数
1
解决办法
2841
查看次数

您对文件描述符使用什么变量名?

一个非常愚蠢的琐碎问题.规范的例子是f = open('filename'),但是

  • f不是很具描述性.在不查看代码之后,您可以忘记它是否意味着"文件"或"函数f(x)"或"傅里叶变换结果"或其他内容.EIBTI.
  • 在Python中,file已经被一个函数占用了.

你还用什么?

python explicit file naming-conventions variable-names

12
推荐指数
2
解决办法
3605
查看次数

学习C或C++会对我的电脑造成危险吗?

刚开始学习C或C++时,是否存在危险知识这样的事情?换句话说,我有可能"意外地"编写和编译格式化硬盘驱动器的代码片段,使操作系统无法使用,或者更糟糕的情况是静默删除计算机上的随机文件?

像名副其实的东西

格式C:/

要么

rm -rf /

如果我刚刚开始修补低级C代码甚至搞乱库,那么需要注意哪些基本事项?

事实上,这些潜在的危险潜伏着什么是保持开发环境沙盒的日常系统的好策略?某些修补区域是否更好地留给虚拟化环境?

不需要进入明确的代码示例,但更一般的建议是我很好奇的.

我认为一个好的经验法则是:在编译和运行一些你在网上找到的随机代码片段之前,一定要了解代码.

注意: 如果相关,我在OS X上.

我认识到一个好的备份系统是无可替代的.黑客攻击破坏你的计算机,最多你失去一天或几小时的工作,并且必须恢复.

c c++

21
推荐指数
7
解决办法
1万
查看次数

正常参数与关键字参数

"关键字参数"与常规参数有何不同?不能传递所有参数name=value而不是使用位置语法?

python arguments keyword optional-parameters named-parameters

271
推荐指数
8
解决办法
23万
查看次数