我翻译的代码 Vala's Memory Management Explained
部分: 具有复制功能的不可变紧凑类
我试着运行那个vala的代码。它按预期工作。
但我现在遇到了一些麻烦。
1:编译
错误:语法错误,预期声明但得到`['与前一行[Immutable]
2:我删除了所有属性
错误:在void函数中返回值
返回新的Foo()
3:给它一个返回值
construct copy (): Foo
错误:语法错误,预期标识符
construct copy (): Foo
我的代码:
[indent = 4]
[Compact]
[Immutable]
[CCode (copy_function = "foo_copy")]
class Foo
def method ()
print "METHOD"
construct copy ()
return new Foo ()
init
var foo = new Foo ()
foo.method ()
var bar = foo
如何正确地将其翻译为Genie?
答案 0 :(得分:2)
您已将Vala中的返回值Foo
与构造函数混淆。在Genie中,代码将是:
[indent = 4]
[Compact, Immutable, CCode (copy_function = "foo_copy")]
class Foo
def method ()
pass
def copy ():Foo
return new Foo ()
init
var foo = new Foo ()
foo.method ()
var bar = foo
多个属性应以逗号分隔。