Cat
Срочно нужны пруфы почитать
Marat
Чар это u32 всегда, а строка в лучшем случае(то есть когда ascii символы) u8
Marat
https://doc.rust-lang.org/1.17.0/std/primitive.char.html
Cat
Чар u32??
պլհկ
вот так сюрприз
պլհկ
char это unicode code point
պլհկ
доброе утро
Dmitry
ладно. хватит раста. Что то я тупой
Денис
Потому что чар банально больше памяти занимает
чар занимает больше памяти, чем что?
Денис
Чар u32??
println!("{}", ::std::mem::size_of::<char>());
Cat
char это unicode code point
Ах, вечно забываю
պլհկ
https://doc.rust-lang.org/std/primitive.char.html
Marat
Строка это 24 байта + аллокация.
Тогда не строка, а &str
Marat
Никакой аллокации тогда
Денис
а &str из воздуха образуется
Cat
Никакой аллокации тогда
Ему все равно нужно оперировать над строками
Cat
Боже у меня даже opera vpn не резолвится, зачем заблочили doc.rust /offtop
Денис
ваще по-моему чуваку хочется сделать всё максимально простым способом, не особо заботясь о количестве потраченной памяти)
Денис
и тут itertools::join блистает)
Marat
Ему все равно нужно оперировать над строками
Ну чары же ему тоже в строки надо? Ну то есть никакого преимущества вообще нет
Loo
ваш раст ебаный. на нём даже пирамидку не запринтить красиво
Marat
Короче я не понимаю зачем ему именно чары
Dmitry
Короче я не понимаю зачем ему именно чары
а как сделать алфавит иначе ? А ну по идее в String сразу можно
Cat
ага. И я не скоро пойму что там с памятью происходит
В этот момент возможно стоит почитать [алгоритмы и] структуры данных
Dmitry
В этот момент возможно стоит почитать [алгоритмы и] структуры данных
читал. Но базовые. И пока так себе. Я с жиеса пришел. Не писал на си и тд
Dmitry
можно сказат раст мой первый 😂
Денис
ну по идее даже не можно, а скорее нужно, если это прям рил алфавит
Денис
например é — два чара
Cat
можно сказат раст мой первый 😂
Впрочем возможно не самый плохой выбор, но кривая входа конеш покруче, чем в других языках
Cat
например é — два чара
А Юникод такого не предусматривает?
Денис
в смысле?
Денис
есть "е с крышечкой", а есть "е и крышечка" — и это разные "символы"
Cat
В юнике это не один символ разве?
Денис
есть и так и так
Денис
https://play.rust-lang.org/?gist=78c650334c46c1c20203b396cce4f0a0&version=stable
Денис
хз короче)
Cat
https://play.rust-lang.org/?gist=78c650334c46c1c20203b396cce4f0a0&version=stable
А какие есть алфавиты с двухсимвольными буквами?
Денис
понятия не имею
Cat
:D
Αλεχ
ваш раст ебаный. на нём даже пирамидку не запринтить красиво
я запринтил, но челик хочет через itertools обязательно
Αλεχ
если нормализация, которая их отображает на один символ
Cat
Там в комитете офигели, хотят ломать совместимость (tldr: будут рассматривать пропозалы, ломающие совместимость) https://habrahabr.ru/post/353940/
Cat
(Ну хоть может наконец-то будут нормальные замыкания)
Cat
Да
Денис
правда статья ни о чём
Денис
но лан
Денис
посмотрим, чё они напринимают
Cat
Эх, да, посыл статьи поместился бы в твит
Cat
+= ", наконец-то"
Маjко
Аккуратнее с джойнами
Αλεχ
Норм статья
Αλεχ
Немного истории не повредит
Berkus
В юнике это не один символ разве?
четыре разные варианта (NFD, NFC, NFKC, NFKD) https://en.wikipedia.org/wiki/Unicode_equivalence
Cat
Спасибо, понятно, но вопрос скорее был про то, есть ли алфавиты, буквы которых состоят из нескольких char
Anonymous
гмм bincode пользовал кто? там есть способ узнать сколько байтов осталось во входном буфере после сериализации?
Loo
гмм bincode пользовал кто? там есть способ узнать сколько байтов осталось во входном буфере после сериализации?
не понял что тебе нужно но допустим https://docs.rs/bincode/1.0.0/bincode/fn.serialized_size.html а так конечно vec.len() лол
Loo
с оффтопом не в этот чат
Anonymous
не понял что тебе нужно но допустим https://docs.rs/bincode/1.0.0/bincode/fn.serialized_size.html а так конечно vec.len() лол
эта щтука приводит к тому что мне надо десериализовать, потом "почти" сериализовать назад не?
Loo
я не понимаю
Anonymous
ну есть буфер, в нем много пакетов, я десериализую их по одному, надо бы знать сколько данных занял только что десериализованный пакет
Anonymous
чтобы нормально десериализовать следующий
Рома
киньте пример кода похожий на этой на C++ object->function(10,10);
Рома
или как это вообще сделать в раст можно или нельзя?
Рома
вот более полностью
Рома
#include <iostream> class new1 { public: void fn() { std::cout << "hello world" << std::endl; } }; int main(int argc, char **argv) { new1* objectr; new1 object; objectr = &object; objectr->fn(); return 0; }