Каков текущий статус стандартных библиотек D?

Существует два способа доступа к тексту из TextField, как показано в документации Флаттера .

Первый - через обратный вызов onChanged, у которого есть параметр, который является текущим текстом.

TextField(
  onChanged: (text) {
    // do what you want with the text
  },
);

Для более сложной обработки текста, включая доступ к нему извне метода build(), вы можете использовать TextEditingController .

final _controller = TextEditingController();

Затем вы можете связать его с вашим TextField:

TextField(
  // other parameters
  controller: _controller,
);

Не забудьте утилизировать его!

@override
void dispose() {
  // other dispose methods
  _controller.dispose();
  super.dispose();
}

Теперь вы можете либо установить, либо получить текст либо получить доступ к значению _controller.text, либо изменить его. Например:

Получение: print(_controller.text);

Установка: _controller.text = 'newText' // now the TextField will have 'newText' written

Или вы можете прослушивать изменения, используя addListener, поэтому всякий раз, когда текст обновляется, Функция по вашему выбору будет называться:

@override
void initState() {
    super.initState();
    _controller.addListener(_handleText);
    // other code here
}

_handleText() {
   // do what you want with the text, for example:
   print(_controller.text);
}

9
задан Łukasz Lew 21 April 2009 в 15:25
поделиться

4 ответа

Общее ядро, называемое druntime, было создано для D2. Низкоуровневая среда выполнения, такая как сборка мусора и создание потоков, ранее была барьером для взаимодействия Фобоса и Танго в одном проекте. Функциональность более высокого уровня Phobos зависела от времени выполнения Phobos, а также для Tango.

Было выпущено серьезное обновление для Phobos (фактически вчера (20.04.09)). Это обновление пытается использовать некоторые из новых функций D2 и представляет концепцию диапазонов, которые похожи на итераторы, но с которыми проще работать и которые более мощные. D2 Phobos сильно отличается от своего слабого аналога D1.

Tango - лучшая стандартная библиотека для D1. Порт D2 находится в работе и, вероятно, будет развиваться намного быстрее, когда D2 стабилен. Большой вопрос заключается в том, будут ли разработчики Tango обновлять его, чтобы в полной мере использовать возможности D2, или они просто сосредоточатся на том, чтобы заставить его работать с D2 так же, как с D1.

В отличие от двух библиотек, Фобос стремится уделять больше внимания созданию простых вещей, синтаксическому сахару, удобству и расширению возможностей того, что можно сделать в стандартной библиотеке. Это нечто среднее между STL и стандартной библиотекой Python, как бы странно это ни звучало. В танго больше похоже на Java. Он больше ориентирован на широкий спектр функций и изящную обработку необычных вариантов использования. Он остается в пределах разумного подмножества D (не так много метапрограммирования шаблонов и т. Д.,

13
ответ дан 4 December 2019 в 08:02
поделиться

Похоже, что по состоянию на октябрь они двигались к совместимости , но я не знаю, что произошло с тех пор ...

Редактировать:

Я также нашел этот , который, кажется, указывает на то, что нет никаких планов по фактическому слиянию:

Не будет никаких изменений в ситуация для D1. Однако D2, по состоянию на версия 2.020, была расщеплена Фобос в 2 библиотеки, druntime.lib и phobos.lib. Это должно позволить общий время выполнения будет использоваться с обоими Фобосом и танго. Пока нет планов объединить обе библиотеки или даже включить Танго с релизами DMD, это будет позволяют обе библиотеки использовать на в то же время без совместимости layer.

6
ответ дан 4 December 2019 в 08:02
поделиться

Tangobos - попытка сделать их совместимыми.

4
ответ дан 4 December 2019 в 08:02
поделиться

В версии 2.0 Tango сможет функционировать как служебная библиотека поверх общего ядра. Общее ядро ​​уже на месте, однако проект Tango пока не поддерживает 2.0.

В версии 1.0 изменений не будет. Это потому, что спецификация 1.0 эффективно заморожена, чтобы позволить стабильной цели развиваться против.

4
ответ дан 4 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: