Это потому, что раздел 3.8 Спецификации языка Java говорит так.
Идентификатор - это последовательность неограниченной длины букв Java и цифр Java, первая из который должен быть буквой Java. Идентификатор не может иметь одно и то же правописание (последовательность символов Юникода) в качестве ключевого слова (§3.9), логический литерал (§3.10.3) или нулевой литерал (§3.10.7).
blockquote>Что касается , почему было принято это решение : возможно, потому, что это упрощает синтаксический анализ, избегает двусмысленной грамматики, позволяет вводить специальный синтаксис в более поздней версии языка и / или по историческим причинам (т. Е. Потому что большинство других языков имеют те же ограничения, что и различные ограничения). Обратите внимание, что пример ваших примеров с
-d
особенно ясен:int -d = 7; System.out.println("Some number: " + (8 + -d));
Является ли минус первой частью идентификатора или унарным минусом?
Кроме того, если вы как
-d
иd
в качестве переменных, это было бы совершенно двусмысленно:int -d = 7; int d = 2; System.out.println("Some number: " + (8 + -d));
Является результатом 15 или 6?
Я могу использовать continueAfterFailure
и запустить другие тесты, используя этот шаблон:
self.continueAfterFailure = NO;
@try
{
// Perform test code here
}
@finally
{
self.continueAfterFailure = YES;
}
Самый простой способ - добавить:
continueAfterFailure = false
в метод setUp (). Так это будет выглядеть так:
Swift
override func setUp() {
super.setUp()
continueAfterFailure = false
}
Objective-C
- (void)setUp {
[super setUp];
[self setContinueAfterFailure:NO];
}