Какой исходный код на языке Dart можно считать действительным и почему?

56
7

Этот сценарий (исходный код) может быть отлично выполнен в рабочем режиме.

void main() {
int greeting = "Hello world!";
print(greeting);
}

Это традиционный пример приветствия, который отлично работает в Дарте.

Результат - "Привет мир!".

Этот сценарий сам по себе, потому что не требуется других функций, и он работает так, как ожидалось.

Теперь у меня есть небольшие вопросы:

Могу ли я считать, что этот скрипт является правильным и правильным исходным кодом на языке Dart, потому что он работает так, как ожидалось? Если этот сценарий является допустимым исходным кодом на языке Dart, то почему он не может быть выполнен в непроизводственном режиме? Если какой-либо код, который может быть отлично выполнен в рабочем режиме, но не может быть выполнен в другом режиме, то какой режим в Dart более корректный (производственный режим или другой режим)?

PS

Как программист, мне интересно не в теории и практике, но у меня есть интерес только в ответах в моих маленьких вопросах, основанных на реальном примере (даже если он очень мал).

Если мои вопросы не так правильны, то я хотел бы знать, почему?

Потому что они напрямую связаны с программированием на языке Dart.

спросил(а) 2014-03-20T10:50:00+04:00 6 лет, 3 месяца назад
1
Решение
101

Он действителен, потому что типы игнорируются в режиме производства.

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

Типы в Dart не предназначены для выполнения, но для времени разработки, чтобы сделать инструменты, способные рассуждать о коде и показать возможные ошибки. Это означает, что неважно, набираете ли вы String или var. Вы не можете полностью опустить это, потому что это нарушает синтаксис.

Он может быть выполнен в режиме производства

# ~/dart/playground/bin/dart_valid
$ dart main.dart
Hello world!

Он не работает в режиме проверки (режим разработки)

# ~/dart/playground/bin/dart_valid
$ dart -c main.dart
Unhandled exception:
type 'String' is not a subtype of type 'int' of 'greeting'.
#0 main (file:///home/zoechi/source/my/dart/playground/bin/dart_valid/main.dart:2:18)
#1 _startIsolate.isolateStartHandler (dart:isolate-patch/isolate_patch.dart:216)
#2 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:115)

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

ответил(а) 2014-03-20T11:02:00+04:00 6 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема