7

Намагаюсь зрозуміти як можна перекласти return type в сенсі типу значення, яке повертає функція. Наприклад:

int f() { return 0; }

Тут return type це int. Тобто, ми повертаємо 0, який має тип int.

Наразі маємо статтю з назвою тип повернення значення функції, але назва якась недолуга як на мене, імовірно намагались перекласти російське тип возвращаемого значения.

return type має синонім result type, можливо варто просто використати тип результату і не намагатись перекласти return type?

  • 1
    Усталеного перекладу термінів із сфери програмування в українській, по суті, немає. Наскільки мені відомо немає жодного словника із технічними термінами та із технічними термінами із сфери програмування зокрема. Зазвичай, просто іде калькування з російської/англійської. Будь-яка відповідь, яку тут можуть дати і на всі питання такого типу - буде абсолютно суб'єктивною(принаймні на 2019 рік), оскільки кожний, більше чи менше, перекладає так як йому звичніше(хтось буде більше калькувати із російської, більшість буде калькувати із англійської), бо стандартів немає. – improbable Jun 26 at 10:08
  • Навіть чинні переклади таких технічних слів на різних сайтах часто відрізняється. Рандомний приклад: слово strict mode в документації Реакту перекладається як суворий режим, а в документації JavaScript в MDN перекладається як строгий режим. Приклад не дуже наочний, але я думаю ви засвоїли суть. – improbable Jun 26 at 10:08
  • @improbable мене влаштує суб'єктивна, добре, щоб вона містила логічне обгрунтування. – Yola Jun 26 at 10:57
  • @Yola я б переклад як повoрoтниј тип (зворотниј, повертниј), також існує, як бачу сутямоковиј вираз result type, тоді результатниј тип. Можна, зьвісно перекласти на родовиј відмінок: тип результату, тип повороту (звороту, поверту). – stegetsj Jun 30 at 10:01
  • @stegetsj мабуть, дійсно ваші варіанти найкращі. Трохи засмучує, що без контексту неможна відрізнити поворот в сенсі на кут і додому. – Yola Jul 1 at 6:33
4

return type - це англійське словосполучення, яке здебільшого використовується у сфері програмування.

Переклад цього словосполучення - тип, який повертається/віддається/вертається.
Скорочено від: тип, який повертає/віддає/вертає функція/метод.
В даному контексті, тип - це тип даних, проте, у 99% випадків, говорять просто тип. Також, майже ніколи не говорять, що тип повертається/віддається/вертається функцією або методом.

Наразі маємо статтю з назвою тип повернення значення функції, але назва якась недолуга як на мене, імовірно намагались перекласти російське тип возвращаемого значения.

Тип повернення значення функції - абсолютне калькування, проте, я вважаю, що аналог цього виразу як тип значення, яке повертає/віддає/вертає функція/метод має право на існування.

Ось і виходить:
return type - тип(значення/даних), який повертається/віддається/вертається (функцією/методом).
З точки зору англійської мови, слово return зазвичай перекладають як повертати, тому, більшість людей схильна перекладати як тип, який повертається.

Зрештою, рішення яку комбінацію слів обирати для перекладу цього словосполучення - залишається за мовцем, адже не існує жодного систематизованого джерела з усталеними словами-аналогами технічних закордонних термінів, особливо із сфери програмування(ситуація на 2019 рік). На жаль, у даному випадку, все зводиться до суб'єктивізму.

Примітка 1: Термін result type я ніколи не зустрічав як синонім слова return type, незважаючи на факт того, що слово result type надзвичайно рідко вживається в спільноті.
Примітка 2: Переклад абсолютно суб'єктивний і відображає власний переклад автора вищезгаданого словосполучення згідно особистих переконань та досвіду в спільноті/сфері.

Необхідне доповнення із коментарів, важливе для людей далеких від програмування:
return type, як мінімум, в 90% випадках, не є результатом виконання функції/методу або є лише частиною! Це зрозуміло усім людям, котрі програмують. return type або є або немає, це тип даних, які функція зобов'язана повернути в мовах зі статичною типізацією(Java, C++, C# і т.д.), вказавши це в своїй сигнатурі(означення методу). В мовах із динамічною типізацією(Python, JavaScript і т.д.), тип даних, що повертається, не оголошується в сигнатурі функції і тому тип даних, котрий повертається, визначається динамічно, під час виконання програми, це може бути що-завгодно; тип даних, що повертається в цьому випадку є неозначеним.

Незалежно від того, що повертає функція - усі зміни, виконані під час роботи функції надзвичайно рідко будуть повністю відображатися в даних(це лише в 99% дійсне для менш популярних функціональних мов та і то лише якщо дотримуватися функціональної парадигми програмування). Ті дані, які повертає функція/метод, зазвичай, є мінімальними даними необхідними для продовження роботи програми або задуманого функціонування.

Я не говорю за старі програми; мови програмування, які зараз не використовуються; неякісний код в проектах і застарілі підходи для програмування.
В усіх сучасних підходах до програмування, це залізне правило.

Таким чином, "return type" - це явна або неявна частина визначення функції, яка, зазвичай, дуже слабко корелюється із повним результатом виконання функції.

0
тип результату

Враховуючи те, що по суті це мабуть найбільш точно передає значення в контексті програмування

  • 1
    Так, це те на, що, мабуть, доведеться погодитись. Але це не дуже вдалий варіант, бо результат роботи функція може й не повертати, тобто можуть бути якісь побічні ефекти або ж зміни в аргументах. – Yola Jun 28 at 15:26
  • @Yola В сигнатурі функції пишеться, який тип даних вона повертає. Це не лотерея, наперед відомо, що метод поверне, якщо ми говоримо про мову програмування із статичною типізацією, синтаксис якої ви вказали в питанні. – improbable Jun 28 at 19:35
  • Саме так, пишеться тип даних, що вона повертає, але те, що функція повертає може не бути всім результатом роботи функції. Наприклад, результатом роботи програми може бути зміна глобального стану. – Yola Jun 29 at 2:14
  • 1
    @Yola Звідси, єдине узагальнення, яка має право на існування - return type - це тип даних, який повертає функція/метод. Якщо цей тип даних - не void(нічого); дані, які поверне метод будуть важливою/потрібною інформацією для подальшої роботи програми та будуть відображати дії(зазвичай не повною мірою), які зробив цей метод/функція. – improbable Jun 30 at 9:44
  • 1
    @improbable - це дуже хороша звичка намагатись писати програми так, щоб побічних ефектів було якнайменше. В функціональних мовах їх взагалі намагаються уникати. Код з функціями без побічних ефектів легше читати. – Yola Jul 1 at 6:37
-2

Йдеться про function/method return type. Його майже завжди скорочують до function/method type. Тобто кажуть: "Булева функція IsValid" чи "Строковий метод GetLastError". На початку власне і йде тип даних, який повертає функція чи метод.

Тип даних — характеристика, яку явно чи неявно надано об'єкту (змінній, функції, полю запису, константі, масиву тощо). Тип даних визначає множину припустимих значень, формат їхнього збереження, розмір виділеної пам'яті та набір операцій, які можна робити над даними.

(c) Стаття "Тип даних" з вікі

Тобто маємо термін тип даних функції, який програмісти не вагаючись скорочують до тип функції. Замість слова функція можна використати процедура

Якщо дуже хочеться наголосити, що це тип значення, що повертається, то можна сказати тип результату функції або, знову ж таки, тип результату чи тип даних результату

In computer programming, the return type (or result type) defines and constrains the data type of the value returned from a subroutine or method.

(c) Стаття "Return type" з англійської вікі

N.B. Для вікі я би порадив варіант тип результату який є дослівним та змістовним перекладом англійського result type

  • Я не чув такого як строковий метод .. Для мене це звучить дуже не звично. – Yola Aug 5 at 11:06
  • Якби мені хтось сказав рядковий метод, то я б, мбауть, подумав, що на увазі мається метод рядка, як-от string.ToUpper. – Yola Aug 5 at 11:13
  • 1
    Так, у терміну строковий метод є і ваше побічне значення. Але його дуже рідко вживають у цьому контексті. Щоб уникнути плутанини, якщо потрібен метод об'єкту, то кажуть "метод <ім'я класу>" (метод стрінга) чи "метод класу <ім'я класу>"(метод класу стрінг). Є ще нефахова, споживацька термінологія. У них усе заплутано. Там прикметник може означати з чим працює метод, тобто які дані він приймає ЧИ повертає. Ось, для прикладу, з керівництва користувача Excel: "Логічні функції", "Функції дати й часу" і т.і.. – finesoul Aug 5 at 13:37
  • 1
    Ви своїми прикладами самі собі заперечили. Функції дати і часу працюють з датою і часом і не обов'язково повертають дату і час. А логічні функції - це функції, які виконують логічні операції. Також слово логічні і булеві - це не синоніми. – Yola Aug 5 at 14:28
  • 1
    «Його майже завжди скорочують до function/method type» — може, десь і скорочують, але я вважаю, що це категорично неправильно. Якщо функція (процедура) оголошена як «func f(a: int, b: string): bool» (або в стилі Сі — «bool f(int a, string b)»), то її типом буде «func(a: int, b: string): bool» (або в стилі Сі — «bool(int, string)»). Тип функції і тип її результату (тип, що вона повертає) — це зовсім різні речі. Але проти фраз «рядкова/цілочисельна/булева функція» нічого не маю (так склалося ще в математиці; хоча в новачків це викликає нерозуміння, мовляв, «це про аргументи чи результат?»). – Sasha Aug 5 at 17:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.