React Intel и i18next React-Native

Оператор == проверяет, указывают ли две ссылки на один и тот же объект или нет. .equals() проверьте фактическое содержимое строки (значение).

Обратите внимание, что метод .equals() принадлежит классу Object (суперкласс всех классов). Вам необходимо переопределить его в соответствии с вашим требованием к классу, но для String оно уже реализовано и проверяет, имеет ли две строки одно и то же значение.

  • Случай 1
    String s1 = "Stack Overflow";
    String s2 = "Stack Overflow";
    s1 == s2;      //true
    s1.equals(s2); //true
    
    Причина: строка литералы, созданные без нуля, хранятся в пуле строк в области перментонов кучи. Таким образом, оба s1 и s2 указывают на один и тот же объект в пуле.
  • Случай 2
    String s1 = new String("Stack Overflow");
    String s2 = new String("Stack Overflow");
    s1 == s2;      //false
    s1.equals(s2); //true
    
    Причина. Если вы создаете объект String с использованием ключевого слова new, ему выделяется отдельное пространство в куче.
0
задан Waheed Akhtar 10 March 2019 в 17:30
поделиться

1 ответ

Глядя на обе библиотеки, я заметил несколько вещей:

  1. У React-intel 210 открытых вопросов, у React-i18next 0
  2. У них обоих одинаковая еженедельная загрузка цифра (200-300 тысяч)
  3. Синтаксисы очень разные.

Справедливо сказать, что, поскольку большое количество людей использует каждую библиотеку, они оба будут работать и будут иметь большую сеть пользователей, которые могут вас поддержать.

Я думаю, что лучше всего, если вы посмотрите на каждый синтаксис и решите, какой из них вам больше нравится, потому что он будет широко использоваться в вашем коде. Имейте в виду, что React-intel имеет довольно мало открытых вопросов, поэтому может быть более ошибочным ...

0
ответ дан jsdeveloper 10 March 2019 в 17:30
поделиться
Другие вопросы по тегам:

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