Программирование на Аде. В чем разница между Put и Put_line

Я пытаюсь выучить Аду. В чем разница между Put и Put_line? Я думаю, что вижу их как взаимозаменяемые, но не могу это подтвердить.

begin
Put("Please type in your name:  ");
get_line(yourName, Length);
New_Line;
Put(yourName(1..Length));
Put(" landed on an alien planet and was attacked by 50 aliens. ");
Put(yourName(1..Length));
Put(" fought bravely and killed 12 attackers, ");
Put("after which the reamining aliens fled.  ");
Put(yourName(1..Length));
Put(" was able to crawl back to his ship" );
Put(" where his medical officer successfully treated his wounds.");
end Short_Story2;

Не понимаю, где и как возникает противоречие.

Shark8 06.08.2018 22:30
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
762
1

Ответы 1

Put_line выводит свой вход и завершает линию, Put - нет. Следовательно, Put_Line("This"); Put_Line("That"); производит

This
That

Пока Put("This"); Put("That"); производит

ThisThat

В этом есть смысл. Но я хочу привести образец кода Ada, который как бы противоречит вашему ответу. Но мой код не выглядит аккуратно читаемым. Я поставлю это в свой первоначальный вопрос.

blickfang 06.08.2018 22:26

Сделай это; Я постараюсь помочь ответить на ваши вопросы.

Shark8 06.08.2018 22:27

Когда я запускаю исполняемый файл, этот вывод разбивается на строки (4 из них), я бы подумал, что это будет одна длинная строка. Окно командной строки Windows выполняет такое форматирование?

blickfang 06.08.2018 22:35

Это одна длинная линия; окно терминала обрабатывает переполнение строки путем перехода к следующей строке. Попробуйте использовать более короткие и длинные имена.

Simon Wright 06.08.2018 22:39

Саймон, я попробую.

blickfang 06.08.2018 22:56

Привет, ребята. Я попробовал несколько тестов Put / Put_Line и увидел результаты, как заявил Shark8. Извините, я сомневался в вас, но мне понравилось тестировать. Спасибо за помощь Shark8 и Саймону Райту.

blickfang 07.08.2018 16:52

По какой-то причине при использовании Put последняя строка тоже имеет разрыв строки. Так что его ThisThat\n вместо ThisThat

Marcel Hernandez 04.04.2021 18:13

@MarcelHernandez - если это последний вывод [в стандартный вывод] программы, IIRC, среда выполнения исправляет ситуацию с помощью новой строки, чтобы вы не разбивали приглашение на вывод: Some-outputC:\> (или как там ваше приглашение) .

Shark8 05.04.2021 17:57

Другие вопросы по теме