Я пытаюсь реплицировать библиотеку Verbal Expression для python в Genie в качестве упражнения, чтобы узнать, как использовать классы. У меня есть простые классы, подобные тем, которые перечислены в учебнике, но когда дело доходит до метода instatiate в объектно-ориентированном режиме, у меня возникают проблемы. Вот что я пытаюсь:Занятия в Genie
В целях обучения я хочу, чтобы метод назывался add, который ведет себя точно так же, как string.concat().
[indent=4]
class VerEx : Object
def add(strg:string) : string
return this.concat(strg)
Но я получаю ошибку:
verbalexpressions.gs:33.16-33.26: error: The name `concat' does not exist in the context of `VerEx'
Когда я использую другой подход, как:
class VerEx : Object
def add(strg:string) : string
a:string=""
a.concat(strg)
return a
init
test:string = "test"
sec:string = " + a bit more"
print test.VerEx.add(sec)
я получаю ошибку в последней строке выше текста, предупреждение:
verbalexpressions.gs:84.11-84.21: error: The name `VerEx' does not exist in the context of `string?'
Я хочу уметь заставить test.add (sec) вести себя одинаково с test.concat (сек), что я могу сделать для этого?
Благодаря, Zee. Один вопрос, зачем нужна to_string? –
Привет, Если метод класса impl to_string, он будет поддерживать интерполяцию строк. здесь '@" $ (self) "' это строка. Но на самом деле это не было необходимо. Вы можете написать что-то вроде этого: 'var join = string.joinv (" ", s.data); var r = new Regex (join) 'или' var r = new Regex (string.joinv ("", s.data)). – Zee