不可变紧凑 class 的 Genie 复制功能
Immutable compact class's copy function for Genie
我翻译的这段代码
Vala's Memory Management Explained
部分:
具有复制功能的不可变紧凑类
我已经尝试 运行 那个 vala 的代码。它按方面工作。
但是我现在遇到了一些麻烦
1:编译
error: syntax error, expected declaration but got `[' with previous end of line [Immutable]
2:我删除所有属性
error: Return with value in void function
return new Foo ()
3:给它一个return值
construct copy (): Foo
error: syntax error, expected identifier
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?
您将 Vala 中的 return 值 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
多个属性应以逗号分隔。
我翻译的这段代码 Vala's Memory Management Explained
部分: 具有复制功能的不可变紧凑类
我已经尝试 运行 那个 vala 的代码。它按方面工作。
但是我现在遇到了一些麻烦
1:编译
error: syntax error, expected declaration but got `[' with previous end of line [Immutable]
2:我删除所有属性
error: Return with value in void function
return new Foo ()
3:给它一个return值
construct copy (): Foo
error: syntax error, expected identifier
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?
您将 Vala 中的 return 值 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
多个属性应以逗号分隔。