Size: a a a

2021 February 19

S

SedSub in rust_offtopic
Emmanuel Goldstein
На PHP в подобных фреймворках обычно пофиг
На PHP в подобных бенчмарках обычно пофиг
источник

EG

Emmanuel Goldstein in rust_offtopic
Отдыхать надо больше
источник

EG

Emmanuel Goldstein in rust_offtopic
Kai Ren
О! А чего "уже говно"?
Ещё прикол
В Go нельзя выразить вот это:
trait Foo {
   fn takes_ref(&self);
   fn takes_val(self);
}

Интерфейс может принимать либо только по значению, либо только по указателю
источник

EG

Emmanuel Goldstein in rust_offtopic
<T: Foo> where &T: Bar тоже выразить нельзя, у тебя нет возможности дописать констрейнты
источник

KR

Kai Ren in rust_offtopic
Ну, там разве по указателю не аналог по ссылке?
источник

KR

Kai Ren in rust_offtopic
Emmanuel Goldstein
<T: Foo> where &T: Bar тоже выразить нельзя, у тебя нет возможности дописать констрейнты
Это да, в курсе.
источник

EG

Emmanuel Goldstein in rust_offtopic
Kai Ren
Ну, там разве по указателю не аналог по ссылке?
В плане, в одном интерфейсе нельзя сочетать функции, которые принимают себя по значению и по указателю
источник

KR

Kai Ren in rust_offtopic
Emmanuel Goldstein
В плане, в одном интерфейсе нельзя сочетать функции, которые принимают себя по значению и по указателю
А, ну да.
источник

EG

Emmanuel Goldstein in rust_offtopic
Соответственно, если ты хочешь, скажем, принимать []T, а вызывать интерфейсные функции на *T, то это не сработает
источник

EG

Emmanuel Goldstein in rust_offtopic
Потому что ты можешь написать либо T MyInterface, но это неправда — интерфейс реализован на *T
источник

EG

Emmanuel Goldstein in rust_offtopic
Либо передавать как T сразу указатель, но это тоже неправда, так ты не получишь слайс
источник

EG

Emmanuel Goldstein in rust_offtopic
Условно,
type Foo interface {
 Bar()
}

type S struct{}

func (s *S) Bar() {}

func takesFoo[T Foo](vals []T) {
 for _, val := range vals {
   val.Bar()
 }
}

func main() {
 var baz []S
 takesFoo[S](baz)  // Нет, S не имплементирует Bar
 takesFoo[*S](baz) // Нет, baz это []S, а не []*S
}
источник
2021 February 20

KR

Kai Ren in rust_offtopic
Ой да, я помню эти замечательные конвертации руками-циклами слайсов значений в слайсы указалетей или обратно.
источник

KR

Kai Ren in rust_offtopic
"Это дорогостоящая операция, потому должна быть явной в коде"... и пиши цикл руками, пиши!
источник

KR

Kai Ren in rust_offtopic
Спасибо тебе Раст, что у меня есть .iter() и .into_iter()
источник

EG

Emmanuel Goldstein in rust_offtopic
Kai Ren
"Это дорогостоящая операция, потому должна быть явной в коде"... и пиши цикл руками, пиши!
Справедливости ради, в расте она тоже не автоматическая
источник

KR

Kai Ren in rust_offtopic
А на худой конец .map(Into::into).collect()
источник

KR

Kai Ren in rust_offtopic
Emmanuel Goldstein
Справедливости ради, в расте она тоже не автоматическая
Хотя бы достаточно эргономична
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Ilya Lakhin
А почему не читать тело кода? Из него, между прочим, вполне можно интерфейс параметров вывести
из того что я не хочу рекурсивно исследовать все места куда мой дорогой obj передается чтобы понять какой *на самом* деле интерфейс ожидается
источник

S

SedSub in rust_offtopic
SedSub
На PHP в подобных бенчмарках обычно пофиг
На PHP обычно пофиг
источник