Сообщение Re[4]: Забавный rust от 01.06.2022 10:01
Изменено 01.06.2022 16:05 Zhendos
Re[4]: Забавный rust
Здравствуйте, vaa, Вы писали:
vaa>
vaa>Или раст не высокоуровневый ЯП?
Так вы же с этим и столкнулись и именно это вам не понравилось?
Все эти 10 способов перевести переменную типа "&str" в тип "String"
проистекают именно из возможности писать абстракции.
"to_string" это из "trait ToString",
то есть чтобы писать такой "generic" код:
Метод "from" из "trait From", метод "into" из "trait Into",
метод "collect" из "trait Iterator" и т.д.
И эти "trait" реализованы не только для "&str", но и еще
для кучи типов. То есть именно желание абстрагироваться привела
к стольким способам конвертации из типа "&str" в "String".
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>Или раст не высокоуровневый ЯП?
Так вы же с этим и столкнулись и именно это вам не понравилось?
Все эти 10 способов перевести переменную типа "&str" в тип "String"
проистекают именно из желания писать абстракции.
"to_string" это из "trait ToString",
то есть чтобы писать такой "generic" код:
Метод "from" из "trait From", метод "into" из "trait Into",
метод "collect" из "trait Iterator" и т.д.
И эти "trait" реализованы не только для "&str", но и еще
для кучи типов (и их конечно можно реализовать для своего типа).
То есть именно желание абстрагироваться привело
к стольким способам конвертации из типа "&str" в "String".
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".