syntactic-sugar- все статьи тега
Существует ли эта особенность? Определение моих собственных фигурных скобок в C#
Вы оцените следующие два синтаксических сахара: lock(obj) { //Code } same as: Monitor.Enter(obj) try { //Code } finally { Monitor.Exit(obj) } И using(var adapt = new adapter()){ //Code2 } same as: var adapt= new adapter() try{ //Code2 } finally{ adapt.Dispose() } Очевидно, что первый пример в каждом случае более удобочитаем. Есть ли способ определить этот вид вещей самостоятельно, либо в языке C#, либо в IDE? Причина, по которой я спрашиваю, заключается в том, что существует много по ...
Python decorator лучшая практика, используя класс против функции
Как я понял, есть два способа сделать Python decorator: либо использовать __call__ класса, либо определить и вызвать функцию в качестве декоратора. Каковы преимущества / недостатки этих методов? Есть ли один предпочтительный метод? Пример 1 class dec1(object): def __init__(self, f): self.f = f def __call__(self): print "Decorating", self.f.__name__ self.f() @dec1 def func1(): print "inside func1()" func1() # Decorating func1 # inside func1() Пример 2 d ...
Как делает Java для каждого цикла?
считаем: List<String> someList = new ArrayList<String>(); // add "monkey", "donkey", "skeleton key" to someList for (String item : someList) { System.out.println(item); } что эквивалентно for цикл выглядит как без использования для каждого синтаксис? ...
Лучший синтаксический сахар javascript
вот некоторые драгоценные камни: литералы: var obj = {}; // Object literal, equivalent to var obj = new Object(); var arr = []; // Array literal, equivalent to var arr = new Array(); var regex = /something/; // Regular expression literal, equivalent to var regex = new RegExp('something'); по умолчанию: arg = arg || 'default'; // if arg evaluates to false, use 'default', which is the same as: arg = !!arg ? arg : 'default'; конечно, мы знаем, анонимные функции, но возможность рассматривать ...
Свойство C# и параметр ref, почему нет сахара?
Я просто наткнулся на это сообщение об ошибке во время работы в C# свойство или индексатор не могут быть переданы в качестве параметра out или ref Я знал, что вызвало это и сделал быстрое решение создания локальной переменной правильного типа, вызывая функцию с ней как out/ref параметр и затем присвоение его обратно свойству: RefFn(ref obj.prop); превращается в { var t = obj.prop; RefFn(ref t); obj.prop = t; } очевидно, что это не удастся, если свойство не поддерживает ge ...