我实际上是Haskell的新手。我已经为Queue编写了这段代码,但最后一行总是面临这种语法错误。
public MyButtons(){ //JFrame frame = new JFrame("MyButtons"); Commentted this JPanel panel = new JPanel(); //frame.add(panel); And this JButton b1 = new JButton("Button 1"); JButton b2 = new JButton("Button 2"); panel.add(b1); panel.add(b2); add(panel); // Add panel to MyButtons frame }
我真的无法弄清楚出了什么问题:(
Syntax error in input (unexpected '=').
答案 0 :(得分:1)
在类和实例中删除类型参数UINavigationController
:
a
并且它编译了没有语言扩展名的 。
编译器想要class QDS q where
instance QDS Queue where
的原因很明显:您的MultiParamTypeClasses
提供了两个类型参数。如果您不包含该实例,则MultiParamTypeClass就足够了。
如果没有灵活实例,像QDS
这样的具体声明可以很好地编译。你必须要求其他人做出更深入的解释,我只能表面上说instance QDS Queue Int where
比a
更灵活。
您不会对有效负载Int
设置任何限制。包含它与a
,Functor
等一样不必要。
从评论中得到的建议:在OOP背景下,类型类会给你一种在家感觉的错觉。您很少需要定义一个类。传递函数的能力比使用对象(或限制为haskell的类型类的数据)更强大。