Size: a a a

2020 March 22

AZ

Alex Zhukovsky in rust_offtopic
Sergey
тут есть два db, один - namespace для lock(), другой - собственно коннектор, верно?
тут их четыре, два в локальной лямбде шедовят друг друга, два топ-левел, тоже жедовят
источник

AZ

Alex Zhukovsky in rust_offtopic
Их типы
ImageDb
Arc<Mutex<imageDb>>
Arc<Mutex<imageDb>>
MutexGuard<imageDb>

соответственно
источник

S

Sergey in rust_offtopic
Alex Zhukovsky
тут их четыре, два в локальной лямбде шедовят друг друга, два топ-левел, тоже жедовят
Для чего нужен блок db,  если следующей строкой идентификатор уходит их скоупа?
источник

S

Sergey in rust_offtopic
И становится результатом lock().unwrap()
источник

AZ

Alex Zhukovsky in rust_offtopic
Sergey
Для чего нужен блок db,  если следующей строкой идентификатор уходит их скоупа?
блок db это что?
источник

S

Sergey in rust_offtopic
let db = {...
источник

AZ

Alex Zhukovsky in rust_offtopic
если про последний в лямбде - так удобнее дебажить
источник

AZ

Alex Zhukovsky in rust_offtopic
Sergey
let db = {...
чтобы lock не торчал в скоупе
источник

S

Sergey in rust_offtopic
почему он не должен торчать?
источник

S

Sergey in rust_offtopic
он же используется в этом скоупе
источник

AZ

Alex Zhukovsky in rust_offtopic
потому что я не хочу его видеть в списке переменных/автокомплите/..
источник

AZ

Alex Zhukovsky in rust_offtopic
он дальше не должен использоваться
источник

S

Sergey in rust_offtopic
а после того, как ты делаешь let db = db.lock().unwrap(), он уже не может быть использован
источник

AZ

Alex Zhukovsky in rust_offtopic
конечно может
источник

S

Sergey in rust_offtopic
нет, потому что новый db затеняет его
источник

AZ

Alex Zhukovsky in rust_offtopic
плюс db - иммутабельный если ты не заметил, а lock - мутабельный
источник

AZ

Alex Zhukovsky in rust_offtopic
Sergey
нет, потому что новый db затеняет его
затеняет что? lock остаётся
источник

S

Sergey in rust_offtopic
да, но на него уже никто не ссылается
источник

S

Sergey in rust_offtopic
и вызывать не сможет еще раз
источник

AZ

Alex Zhukovsky in rust_offtopic
ничто не мешает мне ниже написать
let foo = lock
источник