|
|
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Добрый день всем. Возникла мысль что в некоторых ЯП весьма удобно вернуть примитивный тип, но если нужно (ну очень нужно) вернуть пару значений примитивов то начинается шаманство и колдунство. К примеру. Есть некая функция transform. На вход к ней передаются координаты (x,y) а на выходе мы должны вернуть тоже пару координат после преобразований. Изменение масштаба к примеру. Допустим также что вводить новую сущность типа Point для нас - лениво да и задачка одноразовая. На сях. Код: plaintext 1. 2. 3. Колдунства не понадобилось. Как подобный код может выглядеть в Питонах, Шарпах, Java, и прочих этих ваших Руби и перлах? Допустим также что возврат массивов примитивных типов - это последний и нежелательный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 11:49 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Rust: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 12:06 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Вроде везде можно передавать параметры по ссылке. В C# и PHP можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 12:11 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
mayton, на C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 12:24 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
bazile, а как "принять" Tuple в вызывающем коде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 12:43 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
python: Код: python 1. 2. c++ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 12:50 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
wst, согласись как-то не очень изящненько. Всё таки мы создаём структуру в scope функции. Да и многа букв вышло. А на Питоне - гуд. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 13:00 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Golang. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 13:15 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
maytonа как "принять" Tuple в вызывающем коде? Если нужны отдельные переменные xresult/yresult, то понадобится вручую "распаковать" Tuple. Код: c# 1. 2. 3. Если данные не нужно менять, то можно работать со свойствами Item1, Item2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 13:16 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Оно может и не изящно структуры так отдавать и вообще больше запутывает чем помогает, но не упомянуть такой способ нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 13:43 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Ну я не против вобщем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 14:16 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
mayton, тут я возражаю - если у тебя есть объект Точка, то заводи объект с такими полями. практика показывает, что потом накапливается ума методов, возвращающих Tuple и совершенно непонятно, что в них возвращается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 17:08 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
А как-же return FuckenList, FuckenProperties? Или как-же парадигма программирования Lisp где ты можешь вернуть список с весьма "либеральным" контрактом. Что тут показывает практика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 17:15 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
maytonКак подобный код может выглядеть в Питонах, Шарпах, Java, и прочих этих ваших Руби и перлах? Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А откуда вообще мысль возникла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 17:31 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Подобная мысль возникла в четверг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 17:45 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
По сути вариантов немного. Параметры по ссылке, анонимный класс, массив. В С# анонимные классы есть, но извлечь данные вне области определения - только через reflection. Для "лениво было сущность придумывать" не пойдет ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 18:38 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Удачных выходных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 19:05 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
в C# можно вернуть dynamic (ExpandoObject) https://msdn.microsoft.com/ru-ru/library/system.dynamic.expandoobject(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 21:05 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
mayton, ИМХО, для языков со статической типизацией больше неудобств чем пользы. Тем не менее для С++ 11 и D - https://en.wikipedia.org/wiki/Variadic_template только для D еще способ - http://dlang.org/phobos/std_typecons.html#tuple Для языков с динамической типизацией это рассадник ахудивительных ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2015, 23:33 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
mayton, это как раз пример, когда надо использовать UDT. Пример, когда надо вернуть кортеж, это целочисленное деление: надо вернуть частное и остаток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2015, 11:43 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
mayton, я потом напишу, как это выглядит на common lisp. ну и на python тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2015, 11:44 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
Dima TВроде везде можно передавать параметры по ссылке. В C# и PHP можно. Гы, это и будет самый жестокий говнокод. представь, тебе надо написать выражение с 5 делениями, и передать в каждое по возвращаемому параметру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2015, 11:47 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
mayton, на питон не гуд, потому что там тебя обзывают использовать оба параметра на принимающей стороне. Гуд - в лиспе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2015, 11:50 |
|
||
|
Тяпничный return кортежа
|
|||
|---|---|---|---|
|
#18+
maytonА как-же return FuckenList, FuckenProperties? Или как-же парадигма программирования Lisp где ты можешь вернуть список с весьма "либеральным" контрактом. Что тут показывает практика? это не список, а multiple value ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2015, 11:52 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39091384&tid=1340890]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 361ms |

| 0 / 0 |
