The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Доступен язык программирования Rust 1.16, opennews (?), 19-Мрт-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


31. "Доступен язык программирования Rust 1.16"  –2 +/
Сообщение от Аномномномнимус (?), 19-Мрт-17, 12:20 
Зачем константы называть variables в документации и делать иммутабельными из коробки?
Ответить | Правка | Наверх | Cообщить модератору

34. "Доступен язык программирования Rust 1.16"  –3 +/
Сообщение от Аноним (-), 19-Мрт-17, 12:22 
Константность - только чтение. Мутабельность - чтение и запись. Т.е. любую переменную мы можем читать, а запись - это дополнительное свойство, которое и надо задавать. В С++ эта логика нарушена.
Ответить | Правка | Наверх | Cообщить модератору

44. "Доступен язык программирования Rust 1.16"  +/
Сообщение от Аномномномнимус (?), 19-Мрт-17, 12:49 
Как говорят знакомые атеисты: ОГОСПАДЕ!
Переменная (англ. Variable) имеет в основе слово МЕНЯТЬ. Логично что то что меняется не может быть иммутабельным. В противном случае говорят "документация врёт и не соответствует коду".
Прежде чем учить языки программирования, выучи хоть один человеческий, хотя бы на уровне базовой школы
Ответить | Правка | Наверх | Cообщить модератору

89. "Доступен язык программирования Rust 1.16"  +2 +/
Сообщение от Orduemail (ok), 19-Мрт-17, 17:28 
ОГОСПАДЕ.
Филолог в треде о программировании. Зря ты ссылаешься на толковый словарь английского языка, надо было отследить этимологию глагола to vary назад к латыни и древнегреческому, и сослаться на то, что Сократ думал о мутабельных и константных переменных.
Ответить | Правка | Наверх | Cообщить модератору

92. "Доступен язык программирования Rust 1.16"  +/
Сообщение от Аноним (-), 19-Мрт-17, 17:37 
Переменная может быть константной и меняться. Тут вообще большое поле для демагогии. Но всё это будут придирки к словам. Факт остается фактом, объект должен быть читаем всегда, а вот изменяем нет.
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

105. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от Аномномномнимус (?), 19-Мрт-17, 19:45 
Константа не может быть переменной. Это тавтология.

Есть язык - интерфейс общения. Его ценность в том, что один объект однозначно и по возможности лаконично (чтобы быстро и эффективно) объяснить что-то другому объекту. Будет объяснять человек человеку, человек программе, программа человеку - не важно. Важно чтобы не было путаницы и неоднозначно понимаемых абстрактных бредней. И именно инженеры обязаны это понимать, у них масса технических терминов именно по этой причине. Ты же не называешь системный блок процессором? Ну пожалуйста, скажи что не называешь?

Ответить | Правка | Наверх | Cообщить модератору

168. "Доступен язык программирования Rust 1.16"  +/
Сообщение от angra (ok), 20-Мрт-17, 13:17 
> Константа не может быть переменной. Это тавтология.

Зато переменная может быть константНой или по-русски неизменяемой.

Ответить | Правка | Наверх | Cообщить модератору

194. "Доступен язык программирования Rust 1.16"  +/
Сообщение от анонимус вульгарис (?), 20-Мрт-17, 17:14 
> Константа не может быть переменной. Это тавтология.

Нет, это оксюморон.

Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

217. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от Некулхацкер (?), 23-Мрт-17, 19:19 
> Как говорят знакомые атеисты: ОГОСПАДЕ!
> Переменная (англ. Variable) имеет в основе слово МЕНЯТЬ. Логично что то что
> меняется не может быть иммутабельным. В противном случае говорят "документация врёт
> и не соответствует коду".
> Прежде чем учить языки программирования, выучи хоть один человеческий, хотя бы на
> уровне базовой школы

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

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

46. "Доступен язык программирования Rust 1.16"  +2 +/
Сообщение от freehckemail (ok), 19-Мрт-17, 12:53 
> Зачем константы называть variables

Это в Си-подобных языках традиция такая. Многие языки семейств Lisp/Scheme/ML называют это дело binding, т.е. связыванием. Потому что они связывают текстовое имя (символ) с каким-то местом в памяти.

Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

75. "Доступен язык программирования Rust 1.16"  +1 +/
Сообщение от Orduemail (ok), 19-Мрт-17, 16:12 
Константы и read-only переменные -- это разные вещи. Просто подумай об этом, и -- я верю в тебя -- ты увидишь разницу.
Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

106. "Доступен язык программирования Rust 1.16"  –2 +/
Сообщение от Аномномномнимус (?), 19-Мрт-17, 19:51 
Про константы не я вбросил, я то знаю разницу
Ответить | Правка | Наверх | Cообщить модератору

112. "Доступен язык программирования Rust 1.16"  +2 +/
Сообщение от Аноним (-), 19-Мрт-17, 20:35 
> Про константы не я вбросил, я то знаю разницу

Чуть ниже видно было,
> это по сути read only переменная

"знаток".

Ответить | Правка | Наверх | Cообщить модератору

91. "Доступен язык программирования Rust 1.16"  +2 +/
Сообщение от Аноним (-), 19-Мрт-17, 17:32 
> Зачем константы называть variables в документации и делать иммутабельными из коробки?

Помому что под const обычно подразумевается что-то, вычислямое еще на этапе компиляции.  Еще, конкретно в ржавчине у const нет какого-то определенного адреса, он инлайнится. https://doc.rust-lang.org/book/const-and-static.html
А вот let может быть присвоена уже в рантайме, но только один раз. Типа
let foo = user_input_bar(...);

Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

107. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от Аномномномнимус (?), 19-Мрт-17, 19:59 
Ты удивишься, но константы инлайнились ещё во времена ассемблера.
Вот выше человек правильно написал - это по сути read only переменная, getter - очень распространённая вещь во многих языках.

Короче печально всё, от понимания "зачем оно", до документации (и терминологии в частности).

Ответить | Правка | Наверх | Cообщить модератору

110. "Доступен язык программирования Rust 1.16"  +1 +/
Сообщение от Аноним (-), 19-Мрт-17, 20:29 
> Ты удивишься, но константы инлайнились ещё во времена ассемблера.

Ты удивишься, но я не удивлюсь - я в курсе.
Правда, никакими const там не пахло (не надо кивать на .const секции, это немного из другой оперы), но объявления, в зависимости от диалекта, типа "foo EQU x" или "foo = y" как бы намекали нам об этом. Опять же, никакого конкретного адреса, всем все ясно.

> Вот выше человек правильно написал - это по сути read only переменная,

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

> Короче печально всё, от понимания "зачем оно", до документации (и терминологии в
> частности).

Во-во. Согласен.


Ответить | Правка | Наверх | Cообщить модератору

158. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от Аномномномнимус (?), 20-Мрт-17, 12:26 
Много кто умеет вычислять не меняющиеся переменные на этапе компайлтайма, причём по умолчанию, но они это называют "оптимизация на этапе компиляции", а не делают из этого культ мордования терминологии
Ответить | Правка | Наверх | Cообщить модератору

161. "Доступен язык программирования Rust 1.16"  +/
Сообщение от angra (ok), 20-Мрт-17, 12:50 
Культ тут разве что ты делаешь. Насколько я понял, с С/C++ ты знаком. В них дефолтное поведение для переменной это изменяемость, а невозможность изменений задается ключевым словом const. В rust наоборот, дефолтное поведение для переменной это невозможность изменений, а изменяемость указывается при помощи ключевого слова mut. То бишь если отбросить нюансы с указателями, то разница лишь в том, какое поведение по умолчанию, а какое требует ключевого слова. При этом в обоих случаях речь идет о переменных(именованная ячейка памяти), не о настоящих константах. Скорее всего тебя в заблуждение вводит само слово const.
Ответить | Правка | Наверх | Cообщить модератору

199. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от _ (??), 20-Мрт-17, 19:27 
Он дятел - сиречь не понимает даже что в правильных Ёзыках константы не имеют не то что адреса, но и даже например типа :)
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру