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
Ты слайсы считаешь?
Vladimir
У раста бесконечно типов строк разные &'a str &'b str
Маjко
String
&str
CString
CStr
OsString
OsStr
Anton
не, лайфтаймы не приплетай
Маjко
Loo
ЕСТЬ ТОЛЬКО ДВА СТУЛА
Loo
Т.Е ТИПА СТРОК
Маjко
Loo
Loo
STRING & &str
Anton
ну ок
Маjко
Да я же не говорю что нужно выкинуть далвик. Нужно менять мозги кодеров, чтоб писали на го, а не на джаве
Loo
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
}
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 символа