Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Цифры в конце названия переменных 
:(
    Опции темы
 
Цифры в конце названия переменных
зло [ 7 ]  [25.93%]
иногда можно, напишу когда [ 17 ]  [62.96%]
всегда так пишу [ 3 ]  [11.11%]
Всего проголосовавших: 27
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
mimik
Дата 20.3.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не Rohoss Я
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 1.11.2010

Репутация: нет
Всего: 2



ИМХО это зло, потому что если в конце названия переменных есть цифры, то это повод сделать массив из эти переменных.
PM   Вверх
mes
Дата 20.3.2011, 13:11 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата

иногда можно, напишу когда

например :
Код

template<typename Arg>
void func (Arg a1, Arg a2, Arg a3) 
{}





--------------------
PM MAIL WWW   Вверх
mimik
Дата 20.3.2011, 13:16 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


не Rohoss Я
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 1.11.2010

Репутация: нет
Всего: 2



Цитата(mes @  20.3.2011,  13:11 Найти цитируемый пост)
Код

void func (Arg a1, Arg a2, Arg a3)
 

а почему не
Код

void func (Arg a[3])
{}

?
PM   Вверх
alexvs11
Дата 20.3.2011, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: нет
Всего: 10



mimik, наверно будет разница как вызывать ее 
Код

func( 1,2,3 ) 

или
Код

Arg args[] = {1,2,3};
func( args );

PM MAIL   Вверх
mimik
Дата 20.3.2011, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не Rohoss Я
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 1.11.2010

Репутация: нет
Всего: 2



Цитата(alexvs11 @  20.3.2011,  13:23 Найти цитируемый пост)
наверно будет разница как вызывать ее 

обычно если
Код

void func (Arg a1, Arg a2, Arg a3)

то и вызов этой функции будет примерно таким
Код

a1 = 1;
a2 = 10;
a3 = 2;
...
func(a1, a2, a3);

тогда не проще ли так
Код

a = {1, 10, 3};
func(a);

?

т.е. эти имена очень связаны,
а когда они не связаны то названиям переменным надо давать осмысленные имена
PM   Вверх
mes
Дата 20.3.2011, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(mimik @  20.3.2011,  12:33 Найти цитируемый пост)
тогда не проще ли так
a = {1, 10, 3};
func(a);

проще так :
Код

func(1, 10, 3);



Цитата(mimik @  20.3.2011,  12:16 Найти цитируемый пост)
а почему не
void func (Arg a[3]) 

потому что это другое...

Цитата(mimik @  20.3.2011,  12:33 Найти цитируемый пост)
а когда они не связаны то названиям переменным надо давать осмысленные имена 

это и есть осмысленные имена..

еще пример это плейсхолдеры : _1, _2...
http://liveworkspace.org/code/cafb802b2063...e13a631e435079d


Это сообщение отредактировал(а) mes - 20.3.2011, 14:00


--------------------
PM MAIL WWW   Вверх
mimik
Дата 20.3.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не Rohoss Я
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 1.11.2010

Репутация: нет
Всего: 2



Цитата(mes @  20.3.2011,  13:47 Найти цитируемый пост)
проще так :

понятно что это проще, имелось в виду что a[0], a[1], a[2] ещё где-то используются
Цитата(mes @  20.3.2011,  13:47 Найти цитируемый пост)
потому что это другое...

да это другое, но чем оно хуже?
Цитата(mes @  20.3.2011,  13:47 Найти цитируемый пост)
это и есть осмысленные имена..

a1, a2, a3 это осмысленные имена?  smile 
Цитата(mes @  20.3.2011,  13:47 Найти цитируемый пост)
еще пример это плейсхолдеры : _1, _2...

я с C++ не так хорошо знаком
_1 это имя?
или это параметр по умолчанию?
PM   Вверх
mes
Дата 20.3.2011, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(mimik @  20.3.2011,  13:23 Найти цитируемый пост)
a1, a2, a3 это осмысленные имена?  

 smile , также как и first,second, third
это особенность обобщенного программирования, когда неизвестно что именно скрывается за параметрами и известен лишь алгоритм обработки.. 

например 
Код

template<typename A1,  typename A2>
struct pair
{
     A1 first;
     A2 second;
};
template <typename A>
pair<A1, A2> make_pair (A1 a1, A2 a2)
{
    return pair<A1,A2>(a1,a2);
}

как видно для make_pair абсолютно не важно чем являются A1, и А2.. главное что надо из них сделать структуру.. 

Цитата(mimik @  20.3.2011,  13:23 Найти цитируемый пост)
_1 это имя? или это параметр по умолчанию? 

 smile, имя..

Цитата(mimik @  20.3.2011,  13:23 Найти цитируемый пост)
да это другое, но чем оно хуже?

может и не хуже, но не подходит для той задачи
smile


--------------------
PM MAIL WWW   Вверх
alexvs11
Дата 20.3.2011, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: нет
Всего: 10



Цитата(mimik @  20.3.2011,  14:23 Найти цитируемый пост)
я с C++ не так хорошо знаком


Цитата(mimik @  20.3.2011,  13:33 Найти цитируемый пост)
a = {1, 10, 3};func(a);

оно и видно, в с++ запрещена инициализация подобным образом

Цитата(mimik @  20.3.2011,  14:23 Найти цитируемый пост)
a1, a2, a3 это осмысленные имена?

a[0], a[1], a[2] осмысленней?
PM MAIL   Вверх
mes
Дата 20.3.2011, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(alexvs11 @  20.3.2011,  13:48 Найти цитируемый пост)
оно и видно, в с++ запрещена инициализация подобным образом

там опечатка, не забывайте что мы ж не в разделе c++ и что собеседники могут быть знакомы с ним лишь поверхностно smile
главное что смысл передан..

Добавлено через 1 минуту и 28 секунд
Цитата(alexvs11 @  20.3.2011,  13:48 Найти цитируемый пост)
a[0], a[1], a[2] осмысленней? 

полагается что с массивом осуществляется работа в цикле.. а следовательно "ручного" 
a[0], a[1], a[2] в таком случае не будет.. 



--------------------
PM MAIL WWW   Вверх
Фантом
Дата 20.3.2011, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Можно - в тех случаях, когда цифры представляют собой часть осмысленного имени и не являются в том или ином смысле номерами.
PM   Вверх
mes
Дата 20.3.2011, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



или вот простой пример - функция swap, по обмену содержимого двух переменных .. 
как называть ее аргументы ?


--------------------
PM MAIL WWW   Вверх
миг
Дата 20.3.2011, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 15.9.2008

Репутация: нет
Всего: 1



 
Цитата(mimik @  20.3.2011,  13:33 Найти цитируемый пост)
то и вызов этой функции будет примерно таким

Код

a1 = 1;
a2 = 10;
a3 = 2;
...
func(a1, a2, a3);

тогда не проще ли так
Код


a = {1, 10, 3};
func(a);


?

т.е. эти имена очень связаны,
а когда они не связаны то названиям переменным надо давать осмысленные имена 

это смотря, что твориться внутри функции.
Разница в том, что в результате вычислений внутри функции void fun( int a[]) могут измениться данные  в массиве a..
в отличии от вызова функции void fun(int A[0],int A[1],int A[2] )

Это сообщение отредактировал(а) миг - 20.3.2011, 15:12
--------------------
Oaks may fall when reeds stand the storm.
PM MAIL   Вверх
mes
Дата 20.3.2011, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



вот для наглядности, сами посмотрите что читабельней :
Код

   std::bind (func, _1, _2, _3);   
   std::bind (func, first, second, third);


http://liveworkspace.org/code/2910ce13cff0...db0e784392b9f87


--------------------
PM MAIL WWW   Вверх
mimik
Дата 20.3.2011, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не Rohoss Я
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 1.11.2010

Репутация: нет
Всего: 2



Цитата(mes @  20.3.2011,  14:48 Найти цитируемый пост)
также как и first,second, third

1. тут сложней сделать ошибку
2. если эти переменные связаны, то да, это тоже плохие именна, но здесь мы никак не сможет оградить программиста

Цитата(alexvs11 @  20.3.2011,  14:48 Найти цитируемый пост)
a[0], a[1], a[2] осмысленней?

имхо, да
Код

points = [new Point(1,1), new Point(2,2)]
или
points = ["left-top":new Point(1,1), "right-bottom":new Point(2,2)]

гораздо лучше чем
Код

poinе1 = new Point(1,1)
poinе2 = new Point(2,2)
point3 = new Point(3,3)


Цитата(Фантом @  20.3.2011,  14:59 Найти цитируемый пост)
Можно - в тех случаях, когда цифры представляют собой часть осмысленного имени и не являются в том или ином смысле номерами.

можно пример?

Цитата(mes @  20.3.2011,  15:02 Найти цитируемый пост)
или вот простой пример - функция swap, по обмену содержимого двух переменных .. как называть ее аргументы ?

Код

function swap(left, right)
{}


Добавлено через 2 минуты и 3 секунды
Цитата(миг @  20.3.2011,  15:06 Найти цитируемый пост)
Разница в том, что в результате вычислений внутри функции void fun( int a[]) могут измениться данные  в массиве a..

ну можно поставить const, или как там
PM   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.