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 ответов

17 просмотров

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

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

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-ов. Я просто имел возможность потыкать вышеуказанные языки в течение очень долгого времени, и перегрузка точки это скорее удобно, чем нет (а перегрузка + для конкатенации строк скорее неудобно, и эта фича лишняя). В целом согласен, определённая избыточность нужна, чтобы человек легко смог получить контекст.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта