В дополнение к тому, что уже сказал Заключенный, есть и другие проблемы.
app.intent('favoriete kleur', (conv, {color}) => {
const luckyNumber = color.length;
const audioSound = 'https://actions.google.com/sounds/v1/cartoon/clang_and_wobble.mp3'; // AoG currently only supports MP3!
if (conv.user.storage.userName) {
conv.ask(`${conv.user.storage.userName}, je geluksnummer is `); // Audio should have description
conv.ask(new Suggestions('Paars', 'Geel', 'Oranje'));
} else {
conv.ask(`Je geluksnummer is `);
conv.ask(new Suggestions('Paars', 'Geel', 'Oranje'));
}
});
Надеюсь, что помог.
Я ожидаю так, да. Быстрый тест соглашается (но это не доказательство):
string a = "abc", b = a.ToLower();
bool areSame = ReferenceEquals(a, b); // false
В целом попытайтесь работать с компараторами, которые делают то, что Вы хотите. Например, если Вы хотите нечувствительный к регистру словарь, используйте тот:
var lookup = new Dictionary<string, int>(
StringComparer.InvariantCultureIgnoreCase);
Аналогично:
bool ciEqual = string.Equals("abc", "ABC",
StringComparison.InvariantCultureIgnoreCase);
Строка является неизменным. Строка. ToLower () будет всегда возвращать новый экземпляр, таким образом, генерирующий другой экземпляр на каждом ToLower () вызов.
Реализация Java String.toLowerCase () от Sun на самом деле не всегда выделяет новую Строку. Это проверяет, являются ли все символы нижним регистром, и если так, это возвращает исходную строку.
[править]
Интернирование не помогает - см. комментарии к этому ответу.