172 похожих чатов

#Вопрос Вопрос: что было бы, если бы модули/субмодули в Rust тоже

отделялись точками?
Ну типа
pub use crate.format.{BinaryBytes, DecimalBytes, FormattedDuration, HumanBytes, HumanDuration};
pub use crate.iter.{ProgressBarIter, ProgressIterator};

fn main() {
std.env.set_var("PROXY_HOST", "localhost");
let xs = Vec.new();
}
Почему в качестве разделителя выбрано два двоеточия ::? Где возникла бы неразличимая неоднозначность парсинга?

11 ответов

5 просмотров

а ты понимаешь разницу между :: и .?

Просто четырёхточие прикольнее.

Boris Vinogradov
а ты понимаешь разницу между :: и .?

Да, вполне. Просто контекстной информации вполне достаточно для разрешения неоднозначности, нет?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=a2107838ccc866822f47af9a90b9a8f1 UPD: наверное нужно пояснение — если бы разделителем везде была точка, этот код бы скомпилировался, не показав пользователю, что тот вызывает не то что хотел.

Маjко Lubinéts
https://play.rust-lang.org/?version=stable&mode=de...

Не скомпилится, там же ты от value делаешь, а надо от типа.

Маjко Lubinéts
https://play.rust-lang.org/?version=stable&mode=de...

О, это интересный кейс, спасибо.

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

Oleg Andreev
ко всему вышесказанному добавлю, что вообще-то ЯП ...

Нужен баланс. Спасибо, что например не надо больше заниматься полезной избыточностью в паттерн матчинге, и расставлять вызовы deref-ов и уж тем более drop-ов. Я просто имел возможность потыкать вышеуказанные языки в течение очень долгого времени, и перегрузка точки это скорее удобно, чем нет (а перегрузка + для конкатенации строк скорее неудобно, и эта фича лишняя). В целом согласен, определённая избыточность нужна, чтобы человек легко смог получить контекст.

Похожие вопросы

Обсуждают сегодня

Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
@NikaBelurgHR Бот? Ассемблер?
КТ315
11
юзеры Jetpack Compose тут?
Qtless Qtless
8
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Карта сайта