- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
namespace Ifaces {
interface IFoo {
foo(): number;
}
}
class Cls1 implements Ifaces.IFoo
{
foo(): number
{
print("Hello");
return 1;
}
}
function main()
{
const cls1 = new Cls1();
cls1.foo();
const ifoo: Ifaces.IFoo = cls1;
ifoo.foo();
}
ASD_77 27.07.2021 15:54 # 0
ASD_77 27.07.2021 15:55 # 0
Desktop 27.07.2021 16:04 # +1
Desktop 27.07.2021 16:10 # 0
ASD_77 27.07.2021 16:12 # 0
ASD_77 27.07.2021 16:15 # +1
ASD_77 27.07.2021 16:16 # 0
Desktop 27.07.2021 16:45 # 0
ASD_77 27.07.2021 16:58 # +1
Ragulinho 27.07.2021 23:52 # +1
ASD_77 28.07.2021 02:41 # +1
j123123 28.07.2021 08:54 # +1
ASD_77 28.07.2021 11:14 # +1
j123123 28.07.2021 12:03 # +1
ASD_77 28.07.2021 12:59 # +2
bormand 30.07.2021 20:45 # +1
npopa6 31.07.2021 06:21 # +1
—– Который из них?
–— Пропатченный такой.
—– Да у вас там всё пропатченное!
–— Ну самый пропатченный!
JloJle4Ka 28.07.2021 01:45 # 0
ASD_77 28.07.2021 02:43 # 0
JloJle4Ka 28.07.2021 03:12 # 0
Кстати, там, наверное, уже такое добавили, ведь там такая метушня есть!
ASD_77 28.07.2021 03:25 # 0
JloJle4Ka 28.07.2021 03:33 # 0
Надо бы подучить и сделать абстрактный класс.
j123123 29.07.2021 08:20 # 0
https://dlang.org/spec/interface.html
JloJle4Ka 30.07.2021 02:48 # 0
j123123 30.07.2021 07:56 # +1
> https://nim-lang.org/faq.html
> Nim provides memory safety by not performing pointer arithmetic
Для системного языка это из серии "сразу нахуй". https://nim-lang.org/docs/gc.html к тому же там GC есть, а это анскильно.
JloJle4Ka 30.07.2021 08:15 # 0
> Чтобы нормально ебаться с AST, нужен однородный синтаксис, типа скобочной хуйни из (LISP), а в этом вот "Nim" я такого синтаксиса не наблюдаю.
В «Nim» AST представлено нодами, которые някают мокросы и что-то там высирают. А в твоей сиштушне так можно?? А??? А???? Ну вот и всё, первый аргумент я с лёгкостью слил.
> > Nim provides memory safety by not performing pointer arithmetic
> Для системного языка это из серии "сразу нахуй".
Вообще-то это наоборот круто и классно. Если нужно подрочить поинтер, то просто скастуй его в int и делай с ним что хочешь. Это правильный подход.
В крайнем случае просто определи оператор `+` для поинтера и наклади его в «poleznyi_funkcyi.nim».
> к тому же там GC есть, а это анскильно
Это мы уже обсирали: Гц можно отключить и вручную управлять памятью «как в сишке», Но тогда отвалится половина стандартной библиотеки, которая использует всякие там слайсы и что-то типа того. Но они там, где вручную управляют памятью, и не нужны.
j123123 30.07.2021 08:23 # +1
Это хуйня. Надо чтоб синтаксис напрямую как AST был.
> А в твоей сиштушне так можно??
Сишка - говно. Надо чтоб гомоиконность. Но и Nim тоже говно
> Если нужно подрочить поинтер, то просто скастуй его в int и делай с ним что хочешь.
А не нарушает ли это правила strict aliasing? А что там по перфомансу будет? Вот например если у меня поинтер на double и поинтер на int, из-за этого strict aliasing-а компилятор предполагает, что указатели эти не указывают на один регион памяти, и за счет этого можно делать оптимизацию. Nim так может оптимизировать? Думаю, вряд ли, если надо что-то в int кастовать. Кстати, что еще за "int" такой? У него на 32-битной платформе будет размер 32 бит, а на 64 - 64 бит? Может тут нужен какой-то uintptr_t?
> Это мы уже обсирали: Гц можно отключить и вручную управлять памятью «как в сишке»
А если мне надо чтоб вообще без хипа? Так можно?
JloJle4Ka 30.07.2021 08:39 # 0
Можно свой аллокатор написать, вроде бы.
А в остальном ты меня разъебал.