Информация об изменениях

Сообщение Re[4]: Забавный rust от 01.06.2022 10:01

Изменено 01.06.2022 16:03 Zhendos

Re[4]: Забавный rust
Здравствуйте, vaa, Вы писали:

vaa>
vaa>;(defn f [x] x)
vaa>;(map f [1 2 3]) // => (1 2 3)
vaa>;(map f "hello") //=> (\h \e \l \l \o)
vaa>;


vaa>Или раст не высокоуровневый ЯП?


Так вы же с этим и столкнулись и именно это вам не понравилось?
Все эти 10 способов типа "&str" перевести в тип "String"
именно из возможностей писать абстракции.

"to_string" это из "trait ToString",
то есть чтобы писать такой "generic" код:
fn f<T: ToString>(x: T) -> Stirng {
   x.to_string()
}


Метод "from" из "trait From", метод "into" из "trait Into",
метод "collect" из "trait Iterator" и т.д.

И эти "trait" реализованы не только для "&str", но и еще
для кучи типов. То есть именно желание абстрагироваться привела
к стольким способам конвертации из типа "&str" в "String".
Re[4]: Забавный rust
Здравствуйте, vaa, Вы писали:

vaa>
vaa>;(defn f [x] x)
vaa>;(map f [1 2 3]) // => (1 2 3)
vaa>;(map f "hello") //=> (\h \e \l \l \o)
vaa>;


vaa>Или раст не высокоуровневый ЯП?


Так вы же с этим и столкнулись и именно это вам не понравилось?
Все эти 10 способов перевести переменную типа "&str" в тип "String"
проистекают именно из возможности писать абстракции.

"to_string" это из "trait ToString",
то есть чтобы писать такой "generic" код:
fn f<T: ToString>(x: T) -> Stirng {
   x.to_string()
}


Метод "from" из "trait From", метод "into" из "trait Into",
метод "collect" из "trait Iterator" и т.д.

И эти "trait" реализованы не только для "&str", но и еще
для кучи типов. То есть именно желание абстрагироваться привела
к стольким способам конвертации из типа "&str" в "String".