Anton
ошибаешься
Маjко
Слава Александреску
Vladimir
Ну это аски строки ж
Vladimir
Не?
Vladimir
Но их массив
Anton
utf
Vladimir
А как же компатибилити
Vladimir
С си
Сережа
т.е. для интеграции с си там есть MyDLangCSupetString?
Vladimir
Опять наебали?
Anton
"blablabla".toStringz;
Anton
в сишную
Маjко
utf8 обратно совместим с ASCII x)
Vladimir
в сишную
Так а тип какой
Vladimir
Stringz?
Anton
сишный char*
Vladimir
Эмм
Vladimir
char * и char[] разные типы?
Vladimir
Одно utf8 другое сишный чар?
Anton
char в д unsigned и u32 короче
Vladimir
U32?
Vladimir
А ты точно про utf8 говоришь?
Anton
когда строку по чарам обрабатываешь он он вроде в utf-32 чары фигачит
Anton
хотя нет
Anton
char 0xFF unsigned 8 bit (UTF-8 code unit) wchar 0xFFFF unsigned 16 bit (UTF-16 code unit) dchar 0x0000FFFF unsigned 32 bit (UTF-32 code unit)
Vladimir
О кайф
Vladimir
Три типа чаров
Маjко
Рй
Маjко
У раста 4 типа строк
Маjко
И ничего
Маjко
Даже больше
Маjко
5
Vladimir
4?
Маjко
Не, 6
Vladimir
Ты слайсы считаешь?
Anton
Даже больше
Тссс дай человеку писькой померятся
Vladimir
У раста бесконечно типов строк разные &'a str &'b str
Маjко
String &str CString CStr OsString OsStr
Anton
не, лайфтаймы не приплетай
Loo
ЕСТЬ ТОЛЬКО ДВА СТУЛА
Loo
Т.Е ТИПА СТРОК
Loo
Loo
STRING & &str
Anton
ну ок
Маjко
Да я же не говорю что нужно выкинуть далвик. Нужно менять мозги кодеров, чтоб писали на го, а не на джаве
Loo
да явка божественна по сравнению с го
Anton
mixin template Foo() { int x = 5; } mixin Foo; struct Bar { mixin Foo; } void test() { writefln("x = %d", x); // prints 5 { Bar b; int x = 3; writefln("b.x = %d", b.x); // prints 5 writefln("x = %d", x); // prints 3 { mixin Foo; writefln("x = %d", x); // prints 5 x = 4; writefln("x = %d", x); // prints 4 } writefln("x = %d", x); // prints 3 } writefln("x = %d", x); // prints 5 }
Vladimir
Тссс дай человеку писькой померятся
Не, меня то не пугают строки, это расту вечно говорят что куча способов в строку перевести строку
Anton
Это шаблонные примеси
Anton
ну так, вещь в себе
Vladimir
Крутые технологии
Anton
просто в D если у тебя есть шаблонная функция - auto foo(T = string)() {}
Anton
ты можешь ее вызвать как foo()
Anton
foo!string()
Anton
foo!int()
Anton
foo
Anton
если есть тип по умолчанию
Anton
получается очень читабелььно
Anton
с другой стороны бывает ошибки визуалььно труднее искать
Anton
роешся в чужом коде - и хз это вызов функции а может шаблонная
Anton
ну и такие приколы
Anton
есть функция void abc(string x, int y) { ... }
Anton
можно вызвать abc("kaka", 3);
Anton
"kaka".abc(3)
պլհկ
уау ufcs
Маjко
Найс
Anton
уау ufcs
ага, цепочки лепить удобно =)
Vladimir
Ну эт прикольно, не то что в расте
Vladimir
Урезанно
Vladimir
Хотя искать реализацию проще х)
Anton
вот например если функция без парматров можно не писать ()
Anton
с другой стороны хз
Vladimir
Это уже Паскаль какой-то
Vladimir
Никогда не нравилось такое
Anton
если бы в расте было (0..10).into_iter.map(x).collect;
🎲
вот например если функция без парматров можно не писать ()
вот это как раз сомнительная фича. Из-за этого пришлось даже дополнительный пропозал делать
Vladimir
Имхо лучше чтоб код был более понятный для читателя, чем ты там сэкономили 2 символа