Приоритет оператора Prolog и соответствие правил

Вы должны просто создать новый List (следует использовать под-реализацию) с вашим исходным списком в качестве аргумента.

Любые изменения элементов в любом из контейнеров (оригинальный список или его копия) будут влиять на сам объект, поскольку вы манипулируете ссылочным объектом, а удаление или вставка элементов в любом из этих контейнеров не повлияет на другой, так они полностью разделены:

class Student {
  String name;
  List<Subject> subjects;

  private void someMethod() {
    // create a shallow copy
    List<Subject> copy = new ArrayList<>(subjects);
    // edit the contained elements
    copy.get(0).setSomeProperty();
  }
}
6
задан repeat 3 May 2015 в 19:08
поделиться

1 ответ

Да, это правильно.

Приоритет оператора по умолчанию определен как естественный, т. Е. Используется нормальный математический старшинство. Но если вам это не нравится, вы можете переопределить его.

Является ли изменение приоритета отличной идеей, это другой вопрос, он эффективно меняет синтаксис Prolog и может привести к проблемам с синтаксическим анализом. Особенно, если вы измените приоритет операторов для синтаксиса Пролога с приоритетом выше 1000.

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

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