Nano Hash - криптовалюты, майнинг, программирование

Как я могу добавить геттер в класс Dart с именованным параметром в его конструкторе?

Предположим, у меня есть следующий класс Dart с именованным параметром в его конструкторе:

class TestClass {
  final int someValue;
  TestClass({this.someValue});
}

void someMethod() {
  TestClass testClass = new TestClass(someValue: 10);
  print(testClass.someValue);
}

Как я могу добавить геттер для поля? Я пробовал что-то вроде:

class TestClass {
  final int _someValue;
  TestClass({this.someValue});
  int get someValue => _someValue+2;
}

  • Технически у вас уже есть геттер для поля. Я предполагаю, что вы хотите, чтобы поле не было окончательным и предоставляло только средство получения для него (именно здесь вы обычно используете шаблон private-field / public-getter), а также хотите, чтобы параметр именованного конструктора инициализировал поле. 02.04.2018

Ответы:


1

Именованные параметры не могут быть закрытыми, но вы можете получить желаемые результаты, используя именованный параметр, закрытый член и инициализатор. Вы можете сделать то же самое в теле конструктора без инициализатора, но тогда _someValue не может быть окончательным.

class TestClass {
  final int _someValue;

  TestClass({int someValue}) : _someValue = someValue;

  int get someValue => _someValue;
}

Однако в Dart это не имеет особого смысла. Геттер без соответствующего сеттера семантически эквивалентен конечному полю.

02.04.2018

2

TestClass({this.someValue});

Нет переменной-члена с таким именем. Вы имели в виду _someValue?

01.04.2018
  • Я ничего не имею в виду. Я пробовал что-то в этом роде, это просто случайный код, который не работает. TestClass ({this._someValue}) также не работает. 02.04.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..