PDA

Просмотр полной версии : Как может постоянная быть переменной?


goodguy
15.01.2011, 22:09
Или это я туплю, или тупят те, кто так пишет. Уже не в первый раз вижу запись типа:
Constant static variable. Пока перевожу документацию юниона, встретил это уже раз 100, если не больше.

Но ведь этого не может быть? Чисто логически. Как может переменная быть постоянной?
Если постоянная изменяется в процессе, то это уже переменная. По сути слова антонимы.

Что это вообще хрень? :wacko:

Psycho Tiger
15.01.2011, 22:47
Покажите где )

goodguy
15.01.2011, 22:50
Ты ко мне на вы? )

Ну, например здесь http://www.unionplatform.com/docs/reactorgui/api/1.0.0_Beta1/all-index-D.html

DEFAULT_POSITION_LIST_ATTRIBUTE_NAME — Constant Static Variable, class net.user1.reactor.motion.PositionBroadcaster

И так почти на всех страницах

mooncar
15.01.2011, 23:16
Может быть Constant не "Константа" (в смысле "константа языка" или "константа класса"), а в смысле "Неизменяемая"?
"Неизменяемая статическая переменная", т.е., то есть неизменяемая в определенных рамках, в определенных временных промежутках?
Тогда "Неизменяемая" - будет адекватный перевод.

goodguy
15.01.2011, 23:19
в коде они обозначены так:

public static const DEFAULT_POSITION_LIST_ATTRIBUTE_NAME:String = "defaultPositionListAtributeName";


Так что, все-таки константа

wvxvw
16.01.2011, 01:24
Видимо человеку хотелось показаться умнее за счет наличия большого количества умных слов :)

Котяра
16.01.2011, 02:21
Ну это же Мук. При всём моём к нему уважении - странное попадается иногда (http://books.google.ru/books?id=gUHX2fcLKxYC&pg=PA80&lpg=PA80&dq=%22Constant+Static+Variable%22&source=bl&ots=cuYV0kjZx0&sig=9GMRPowzkMZlgCSzGUCErXwvoT0&hl=ru&ei=QR0yTdSuFoWVOoOj9LQC&sa=X&oi=book_result&ct=result&resnum=10&sqi=2&ved=0CHIQ6AEwCQ#v=onepage&q=%22Constant%20Static%20Variable%22&f=false):

i.o.
16.01.2011, 02:26
Судя по беглому взгляду:

DEFAULT_LABEL — Static Variable, ...
DEFAULT_POSITION_LIST_ATTRIBUTE_NAME — Constant Static Variable, ...
DEFAULT_SAMPLE_RATE — Static Variable, ...
DEFAULT_SEND_RATE — Constant Static Variable, ...

автор еще не определился масляное у него масло или же немасляное ;)

mayakwd
16.01.2011, 06:36
имеется в виду переменная которая имеет постоянное значение, что в сути и есть константа.
употребление подобной формы не является ошибкой и вполне вменяемо.

более широкое объяснение: постоянной переменной называется переменная, значение для которой невозможно изменить после присваивания.

i.o.
16.01.2011, 07:18
Пофлеймлю малость...
В английском - это противоположные по смыслу слова. Вот из того же wiktionary.org

Constant:
Noun

constant (plural constants)
That which is permanent or invariable.

Invariable:
Adjective

invariable (not comparable)
Not variable; constant.

В нашем примере constant употреблено именно как прилагательное, поэтому исходя из следствия, получаем:
constant = Not variable.


Вот и получается:
Not variable Static Variable

Аналогично, что и на русском
Непеременная статичная переменная

Уж либо переменная, либо непеременная..

Выводы: в принципе понятно, что автор хотел пояснить этими словами. Но лексически, предложение построено неверно.

чтд. 8)

mayakwd
16.01.2011, 07:28
Constant variable

Definition: A variable whose value cannot be changed once it has been assigned a value.

Хомяк
16.01.2011, 08:19
Константа - это переменная содержащая изначально значение, которое мы не можем изменить. Константная переменная не имеет изначального значения, но после присвоения такового ей его изменить на протяжении программы уже нельзя. В РНР есть подобная штуковина.

wvxvw
16.01.2011, 10:48
Да не выдумывайте, либо переменная, либо постоянная, эти вещи взаимоисключающие, а то, о чем вы говорите называется http://msdn.microsoft.com/en-us/library/acdd6hb7(v=vs.71).aspx .

goodguy
16.01.2011, 11:19
Вот и я о том же.
Но это наблюдается не только у Мука. Просто я столкнулся с этим у него. А если погуглить, такие конструкции встречаются сплошь и рядом. И в документации С++ и в джаве, и еще много где.

Константа - это переменная содержащая изначально значение, которое мы не можем изменить. Константная переменная не имеет изначального значения, но после присвоения такового ей его изменить на протяжении программы уже нельзя. В РНР есть подобная штуковина.
Даже если предположить, что это так (что у меня лично не укладывается в голове), то значения им должны даваться где-то в конструкторе, а в реакторе юниона, они присвоены сразу при объявлении.

Котяра
16.01.2011, 13:00
Переводите как константа и не забивайте голову.

goodguy
16.01.2011, 13:02
Да я так и делаю :)

Просто хотел узнать, правильно это или нет

Psycho Tiger
16.01.2011, 18:31
Моё имо, что сначала человеку дают понятие "переменная". А потом "константа". Речь о программировании.
Как объяснить что такое константа максимально просто? Это неизменяемая переменная. В итоге переменная выступает в роли лексемы (идентификатора), а не в роли чего-то, что можно изменить.

goodguy
16.01.2011, 18:33
Документация к платформе юнион - это не то место, где есть люди не понимающие что такое переменная или постоянная

i.o.
16.01.2011, 20:28
в коде они обозначены (пост 5) как:
public static const
я один здесь не заметил кейворда var ?

goodguy
16.01.2011, 20:29
там нет var, там именно const.
К чему вопрос?

i.o.
16.01.2011, 20:31
ну так и я про что? Вывод - это константа, а не "константная переменная", или как там..

goodguy
16.01.2011, 20:32
Суть темы в этом и состоит ;)
объявлены константы, а пишут про переменные
Можно ради интереса спросить у самого Колина Мука. Он довольно общительный чувак :D

i.o.
16.01.2011, 20:35
спроси, если есть возможность)

Хомяк
17.01.2011, 01:55
Да не выдумывайте, либо переменная, либо постоянная, эти вещи взаимоисключающие, а то, о чем вы говорите называется http://msdn.microsoft.com/en-us/library/acdd6hb7(v=vs.71).aspx .

пардон, действительно спутал, в РНР такого нет