Позволяет ли язык V расширять базовые типы?
В языке V методы определяются отдельно от структур данных.
Позволяет ли язык V определять методы для базовых типов, например Array
?
Можно ли написать my_method
метод вроде
fn (array Array) my_method() { ... }
list := ["a", "b"]
list.my_method()
2 ответа
Решение
Только в своих собственных модулях вы контролировали реализацию - и я не думаю, что есть какие-либо планы по ее поддержке.
Вы можете сделать что-то подобное с универсальными шаблонами или встроенными структурами, когда они будут полностью готовы. Но я сомневаюсь, что он получит поддержкуbuiltin
типы модулей
Вы не можете определить метод для типа, если тип и метод не определены в одном модуле. Однако вы можете определить метод в массиве настраиваемого типа, если и метод, и настраиваемый тип находятся в одном модуле. Например:
struct St
{
i int
}
fn (s []St) array_method() {
println(s[0])
println(s[1])
}
arr := [St{3}, St{4}]
arr.array_method()