Вернуть две строки из функции
От: Vladik Россия  
Дата: 26.04.02 10:54
Оценка:
Привет!

Я сразу извиняюсь за ламерский вопрос и некоторую резкость по отношению к эхотагу (программлю только вторую неделю), но...

Как сделать такую простую вещь как сабж? Т.е. я понимаю, что можно вернуть коллекцию строк, можно вернуть класс (специально созданный для хранения двух строк), можно написать враппер для String (с методами getString и setString) и передавать его по ссылке. А проще в этом долбанном языке никак нельзя? Или может есть готовый враппер или т.п.?

P.S. Тоже самое, кстати, касается int и т.п. простых типов, которые нельзя передавать по ссылке.
P.S.S. А вообще я уже просто утомился писать кучу кода из-за ничего
Как все запущенно...
Re: Вернуть две строки из функции
От: Рек Россия  
Дата: 26.04.02 13:00
Оценка:
Здравствуйте Vladik, Вы писали:

V>Привет!


V>Я сразу извиняюсь за ламерский вопрос и некоторую резкость по отношению к эхотагу (программлю только вторую неделю), но...


V>Как сделать такую простую вещь как сабж? Т.е. я понимаю, что можно вернуть коллекцию строк, можно вернуть класс (специально созданный для хранения двух строк), можно написать враппер для String (с методами getString и setString) и передавать его по ссылке. А проще в этом долбанном языке никак нельзя? Или может есть готовый враппер или т.п.?


V>P.S. Тоже самое, кстати, касается int и т.п. простых типов, которые нельзя передавать по ссылке.

V>P.S.S. А вообще я уже просто утомился писать кучу кода из-за ничего


Держись, друг. Ты не один.
Эт точно. Без указателей приходится туго.

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

Я обхожусь тем, что написал по вреперу для каждого простого типа.


class RefInt
{
  public Integer val = null;
}

void f(RefInt ri)
{
  ri.val = new Integer(5);
}

void g()
{
  RefInt ri = new RefInt();
  f(ri);
  int a = ri.val.intValue();

  System.out.println(a);
}


Вот такой изврат...

Надо поспрашать в форуме .Net.
В C#-пе теже заморочки?
Re[2]: Вернуть две строки из функции
От: Рек Россия  
Дата: 26.04.02 14:02
Оценка:
Здравствуйте Рек, Вы писали:

Рек>Здравствуйте Vladik, Вы писали:

V>>Привет!
V>>Как сделать такую простую вещь как сабж? Т.е. я понимаю, что можно

Рек>В C#-пе теже заморочки?


В C# есть словечко ref.
Re: Вернуть две строки из функции
От: Пластеев Владимир  
Дата: 28.04.02 13:12
Оценка:
V>Как сделать такую простую вещь как сабж? Т.е. я понимаю, что можно вернуть коллекцию строк, можно вернуть класс (специально созданный для хранения двух строк), можно написать враппер для String (с методами getString и setString) и передавать его по ссылке. А проще в этом долбанном языке никак нельзя? Или может есть готовый враппер или т.п.?

а возвращать массив тебе чем не подходит? нах классы, то городить?

V>P.S. Тоже самое, кстати, касается int и т.п. простых типов, которые нельзя передавать по ссылке.

V>P.S.S. А вообще я уже просто утомился писать кучу кода из-за ничего :(

дык это тебе не цпп, тут аккуратно типа все. :))
Re: Вернуть две строки из функции
От: Alex_Skokov Беларусь  
Дата: 29.04.02 05:28
Оценка:
Здравствуйте Vladik, Вы писали:

V>Привет!


V>Я сразу извиняюсь за ламерский вопрос и некоторую резкость по отношению к эхотагу (программлю только вторую неделю), но...


V>Как сделать такую простую вещь как сабж? Т.е. я понимаю, что можно вернуть коллекцию строк, можно вернуть класс (специально созданный для хранения двух строк), можно написать враппер для String (с методами getString и setString) и передавать его по ссылке. А проще в этом долбанном языке никак нельзя? Или может есть готовый враппер или т.п.?


V>P.S. Тоже самое, кстати, касается int и т.п. простых типов, которые нельзя передавать по ссылке.

V>P.S.S. А вообще я уже просто утомился писать кучу кода из-за ничего

Привет!
Верни Vector строк созданный в функции, либо заполни переданный Vector, а верни boolean.
Вариантов много, и думать об очистке памяти не надо.
Alex
Re[2]: Вернуть две строки из функции
От: Vladik Россия  
Дата: 29.04.02 08:04
Оценка:
Здравствуйте Пластеев Владимир, Вы писали:

ПВ>а возвращать массив тебе чем не подходит? нах классы, то городить?


Во-первых озвращать массив — не наглядно и чревато глюками (т.к. элементы массива не именованы). Во-вторых у меня не получилось описать функция, _возвращающую_ массив :*)

V>>P.S. Тоже самое, кстати, касается int и т.п. простых типов, которые нельзя передавать по ссылке.

V>>P.S.S. А вообще я уже просто утомился писать кучу кода из-за ничего
ПВ>дык это тебе не цпп, тут аккуратно типа все.

Тем не менее передача объектов по ссылке (и больше никак!), включая те же строки, это фккуратно?
Как все запущенно...
Re[2]: Вернуть две строки из функции
От: Vladik Россия  
Дата: 29.04.02 08:08
Оценка:
Здравствуйте Alex_Skokov, Вы писали:

V>>P.S.S. А вообще я уже просто утомился писать кучу кода из-за ничего

AS>Верни Vector строк созданный в функции, либо заполни переданный Vector, а верни boolean.

Это я и имел ввиду под "кучей кода из-за ничего". Создать, заполнить, прочитать...

AS>Вариантов много, и думать об очистке памяти не надо.


А если бы можно было просто передать по ссылке — надо было бы думать???
Как все запущенно...
Re[3]: Вернуть две строки из функции
От: Andy77 Ниоткуда  
Дата: 30.04.02 16:29
Оценка:
Здравствуйте Vladik, Вы писали:

V>Во-первых озвращать массив — не наглядно и чревато глюками (т.к. элементы массива не именованы). Во-вторых у меня не получилось описать функция, _возвращающую_ массив :*)


MyType[] methodName() не пробовал? :)

// два года уже на джаве не писАл, надеюсь не ошибся :)
Re[4]: Вернуть две строки из функции
От: Vladik Россия  
Дата: 30.04.02 19:31
Оценка:
Здравствуйте Andy77, Вы писали:

A>MyType[] methodName() не пробовал?

A>// два года уже на джаве не писАл, надеюсь не ошибся

У меня сейчас исходника под рукой нет, но вроде я именно так и написал — компилятор ругался.
Как все запущенно...
Re: Вернуть две строки из функции
От: shmakov Россия  
Дата: 04.05.02 19:48
Оценка:
Здравствуйте Vladik, Вы писали:

V>Привет!


V>Я сразу извиняюсь за ламерский вопрос и некоторую резкость по отношению к эхотагу (программлю только вторую неделю), но...


V>Как сделать такую простую вещь как сабж? Т.е. я понимаю, что можно вернуть коллекцию строк, можно вернуть класс (специально созданный для хранения двух строк), можно написать враппер для String (с методами getString и setString) и передавать его по ссылке. А проще в этом долбанном языке никак нельзя? Или может есть готовый враппер или т.п.?


V>P.S. Тоже самое, кстати, касается int и т.п. простых типов, которые нельзя передавать по ссылке.

V>P.S.S. А вообще я уже просто утомился писать кучу кода из-за ничего

возвращай массив или создай класс и возвращай его
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.