V 语言是否允许扩展基类型?
Does the V language allow to extend base types?
在 V 语言中,方法是与数据结构分开定义的。
V 语言是否允许在基本类型上定义方法,例如 Array
?
是否可以像
那样编写my_method
方法
fn (array Array) my_method() { ... }
list := ["a", "b"]
list.my_method()
只有在您自己的模块中,您才能控制实现 - 我认为没有任何支持它的计划。
当泛型或结构嵌入完全完成时,您可能会做类似的事情。但我怀疑 builtin
模块类型是否会支持它。
编辑:
(将来也可能对 Sum 类型做一些事情)
除非类型和方法都在同一个模块中定义,否则不能在类型上定义方法。但是,如果方法和自定义类型都在同一模块中,则可以在自定义类型的数组上定义方法。例如:
struct St
{
i int
}
fn (s []St) array_method() {
println(s[0])
println(s[1])
}
arr := [St{3}, St{4}]
arr.array_method()
在 V 语言中,方法是与数据结构分开定义的。
V 语言是否允许在基本类型上定义方法,例如 Array
?
是否可以像
那样编写my_method
方法
fn (array Array) my_method() { ... }
list := ["a", "b"]
list.my_method()
只有在您自己的模块中,您才能控制实现 - 我认为没有任何支持它的计划。
当泛型或结构嵌入完全完成时,您可能会做类似的事情。但我怀疑 builtin
模块类型是否会支持它。
编辑: (将来也可能对 Sum 类型做一些事情)
除非类型和方法都在同一个模块中定义,否则不能在类型上定义方法。但是,如果方法和自定义类型都在同一模块中,则可以在自定义类型的数组上定义方法。例如:
struct St
{
i int
}
fn (s []St) array_method() {
println(s[0])
println(s[1])
}
arr := [St{3}, St{4}]
arr.array_method()