Pull to refresh
32
0
Сергей @CepbluBoJlk

Пользователь

Send message
В этом примере да, это не код для продакшена а для демонстрации возможности.
Примерно так:
function memoize<TS extends any[], R>(
    fn: (...args: TS) => R, 
    keyFn?: (...args: TS) => string): (...args: TS) => R {
      
  const cache: Record<string, { value: R }> = {};
  return (...args: TS) => {
    const key = (keyFn || (args => args.reduce((acc, arg) => (acc += String(arg)), "")))(args);
    return (cache[key] || (cache[key] = { value: fn(...args) })).value;
  };
}

const fn1 = (a: string) => 1;
const fn2 = (a: string, b: boolean) => true;
const fn3 = (a: string, b: boolean, f: (x: number) => void) => 1;
const fn4 = (a: string, b: boolean, o: object) => 1;

// (a: string) => number
const mfn1 = memoize(fn1); 

// (a: string, b: boolean) => boolean
const mfn2 = memoize(fn2);

// (a: string, b: boolean, f: (x: number) => void) => number
const mfn3 = memoize(fn3, (a, b, fn) => `${a}, ${b}, ${fn(1)}`);

// (a: string, b: boolean, o: object) => number
const mfn4 = memoize(fn4);

Правда нужен typescript версии > 3, blogs.msdn.microsoft.com/typescript/2018/07/12/announcing-typescript-3-0-rc
Вариант купить Rider авансом в половину цены?
Как вы задолбали с этим высказыванием, VS написана на C++/C + C# и скорее всего еще зоопарк всего, тем не менее она используется для многих других языков, есть IntelliJ Platform, на которой написано много разных IDE для других языков, которые к джаве имеют отношение чуть менее чем никакое (PhpStorm, WebStorm, RubyMine, AppCode, PyCharm...) саблаймы, VS Code / Atom. И ни где я не слышал что люди жалуется на то что IDE написана на другом языке, только когда говорят про райдер. Какая разница на чем это написано если это упрощает разработку, и никто не заставляет писать вас на джаве / котлине. Так же когда вы пишите что то на С в саблайме вам плевать что он написан на плюсах и питоне. Есть же бизнес, есть отличный кроссплатформенный UI, есть классный решарпер, и почему бы не взять лучшее из этих 2 миров, чем переписывать один из них на c# просто для чистоты?
А если:
public static bool operator ==(ClockState a, ClockState b){
	return false;	
}

public static bool operator !=(ClockState a, ClockState b){
	return false;	
}


Но это конечно же дичь какая то…
Вот у меня вопрос, я конечно все понимаю jdoc и все такое, но «Устанавливает параметр», «Констркутор по умолчанию», «Конструктор с параметрами», /* Константы */ и все такое это какая то жесть и мусор.
Плюс splatting:
public double SomeMethod(int a, int b) => { };

var t = new (int a, int b) { a = 1, b = 2 };

SomeMethod(t);

и unsplatting
new List<(int a, int b)>().Add(1, 2);
Это простой случай который будет работать потому что switch expression один из sbyte, byte, short, ushort, int, uint, long, ulong, char, string, enum-type, и case constant-expression можно неявно привести к одному из этих типов, в случае с when мы можем вычислить выражение, как в примере x.Any(), что сделать в случае case нельзя.
Погорячился, скорее приравнивают "другое" к минусам
Время жизни только до выхода из метода же? А вообще ref из листа не сможешь получить потому что индексатор (или метод) должен быть реализован как ref, и сеттер в ref индексаторе должен отсутствовать.

Вот PR где рассматриваются некоторые моменты github.com/dotnet/roslyn/pull/8030
В подкасте devzen как то было бурчание насчет того что имена методов с заглавной буквы. Из за привычки люди могут не углядеть плюсов.
В блоге Josh'a Varty joshvarty.wordpress.com очень подробно описано как собирать без VS15
Visual Studio 15 и __DEMO__ в Conditional compilation symbols и __DEMO_EXPERIMENTAL__ для «match»
Без синтаксической поддержки языка это не более чем просто класс, аналогично не нашёл применения, в контексте метода куда удобнее анонимные типы, в контексте класса — вложенные классы. К тому же отсутсвие вывода типов в конструкторах зашумляет код. Радует что в списке фич 7 версии языка находится в разделе "Strong interest"
Не очень понятно почему «Remote reflection...» это же просто reflection.
И еще один плагин, тоже от Шведова, для счастливых обладателей 9.x решарпера, github.com/controlflow/resharper-postfix, в 10 он уже вроде как встроен
Я бы добавил github.com/controlflow/resharper-heapview, можно много нового узнать
Эм и все? Где «рабочие примеры»? Рассказали бы об one-time bindings (::), которые появились в 1.3, позволяет значительно повысить перфоманс, уменьшив количество вотчеров.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity