Size: a a a

Rust — русскоговорящее сообществo

2020 August 07

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
или ты предлагаешь за O(N) его реализовывать?
источник

В

Вафель in Rust — русскоговорящее сообществo
Alex Zhukovsky
откуда он его возьмет? Он не знает где строка заканчивается
С чего бы ему не знать, если он строку сам хранит?
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Вафель
С чего бы ему не знать, если он строку сам хранит?
let s = "bla ❤️ bla bla".iter();
s.next();
s.next();
s.next();
s.next();

откуда щас итератор знает сколько до конца строки?
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
Alex Zhukovsky
откуда он его возьмет? Он не знает где строка заканчивается
у него внутри есть текущая позиция (точнее start и end) и ссылка на строку, он может вполне просто вернуть string[end..]
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Mikhail Voronov
у него внутри есть текущая позиция (точнее start и end) и ссылка на строку, он может вполне просто вернуть string[end..]
даже если он знает длину в символах (а он не знает), то в батах точно не в курсе. Я не думаю что там ведется подсчет
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
Alex Zhukovsky
let s = "bla ❤️ bla bla".iter();
s.next();
s.next();
s.next();
s.next();

откуда щас итератор знает сколько до конца строки?
в &str есть длина же. Это указатель на строку и её длина
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Mikhail Voronov
в &str есть длина же. Это указатель на строку и её длина
длина всего str. Итератор ведет счет сколько байт он уже посмотрел?
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
Alex Zhukovsky
длина всего str. Итератор ведет счет сколько байт он уже посмотрел?
конечно
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
Alex Zhukovsky
даже если он знает длину в символах (а он не знает), то в батах точно не в курсе. Я не думаю что там ведется подсчет
Он знает длину в байтах и знает что эти байты в utf-8, этого достаточно.
источник

В

Вафель in Rust — русскоговорящее сообществo
Alex Zhukovsky
длина всего str. Итератор ведет счет сколько байт он уже посмотрел?
Да, иначе бы каждый  next() работал бы как первый
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
а как иначе он будет работать?
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Вафель
Да, иначе бы каждый  next() работал бы как первый
нет, не значит
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
можно заметить, что подсчета "сколько байт прошли" нету, есть только указатель на текущий элемент и хвост
источник

В

Вафель in Rust — русскоговорящее сообществo
Пр Chars вообще не слова было, мы только про Split говорим
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
хотя да, из них можно вычеслить
источник

В

Вафель in Rust — русскоговорящее сообществo
Alex Zhukovsky
можно заметить, что подсчета "сколько байт прошли" нету, есть только указатель на текущий элемент и хвост
Не важно сколько прошло, важно сколько осталось, нам же хвост нужен
источник

В

Вафель in Rust — русскоговорящее сообществo
Alex Zhukovsky
нет, не значит
окей, сорямба, не правильно понял тебя
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
Alex Zhukovsky
А кто-нибудь видел рекомендации когда копи-типы лучше по ссылке передавать? Ну то есть x: &i32 это бред, все понимают, а вот x: &Foo начиная с какого размера Foo имеет смысл?
https://youtu.be/4M1MlW0sP0Q?t=1394
кстати, могу порекомендовать видео. Оно про плюсы, но смысл один и тот же. А так если у тебя никсы, то первые 6 параметров передаются через регистры, т.е. в зависимости от количества параметров функции можно структуры <= 6 простых полей передавать по значению.
источник

X

XÆA-XII in Rust — русскоговорящее сообществo
А как скомпилять раст в llvm ассемблер, а не в бинарник?
источник