Позволяет ли язык 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()
Другие вопросы по тегам