标签: syntactic-sugar

Form.BeginInvoke有简写吗?

在我的GUI代码中,我经常写这样的东西:

private void SecondTimer_Elapsed(object sender, ElapsedEventArgs e)
{
    if (progressBar1.InvokeRequired)
    {
      progressBar1.BeginInvoke(new ElapsedEventHandler(SecondTimer_Elapsed), new[] {sender, e});
      return;
    }
//Code goes here
}
Run Code Online (Sandbox Code Playgroud)

当然,如果应用程序是多线程的,这是必要的,因为我们需要编组最初创建控件的线程.问题是,编写委托并将参数放入数组可能会很繁琐,并且它会在每个这样的事件处理程序的顶部占用空间.是否有一个属性或类似的东西将为您替换此代码?基本上是一个标签,上面写着"如果你在错误的线程上,请在GUI线程上再次使用相同的args给我打电话."

.net c# attributes syntactic-sugar winforms

4
推荐指数
1
解决办法
3158
查看次数

Objective-C:消息语法与点语法; 有什么不同?

如果我正在使用@synthesize foo;,以下内容之间有什么区别:

// message syntax
[myObj setFoo:5];
[myObj foo];
Run Code Online (Sandbox Code Playgroud)

// dot syntax
myObj.foo = 5;
myObj.foo;
Run Code Online (Sandbox Code Playgroud)

我喜欢点语法的一致性,但我不知道它是否正在做我应该关心的事情.

任何其他信息都将是一个很大的帮助.

syntax objective-c syntactic-sugar

4
推荐指数
1
解决办法
895
查看次数

只读字段句法快捷方式

我们知道代码:

using(myDisposable)
{
}
Run Code Online (Sandbox Code Playgroud)

相当于

try
{
   //do something with myDisposable 
}
finally
{
  IDisposable disposable = myDisposable as IDisposable;
  if(disposable != null)
  {
    disposable.Dispose();
  } 
}
Run Code Online (Sandbox Code Playgroud)

lock(_locker)
{
}
Run Code Online (Sandbox Code Playgroud)

相当于

Monitor.Enter(_locker);
try
{

}
finally
{

  Monitor.Exit(_locker);
}
Run Code Online (Sandbox Code Playgroud)

什么是相当于readonly字段?

readonly object _data = new object();
Run Code Online (Sandbox Code Playgroud)

c# readonly syntactic-sugar

4
推荐指数
1
解决办法
229
查看次数

如何检查一系列值是否正确排序?

我有很多Action带有财产的物品long Timestamp.我想做这样的事情:

Assert.IsTrue(a1.Timestamp < a2.Timestamp < a3.Timestamp < ... < an.Timestamp);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种语法是非法的.是否有内置方式或扩展\ LINQ \无论如何执行此操作?

请注意,它是单元测试类的目标,所以要发疯.我不关心性能,可读性等.

.net c# comparison syntactic-sugar

4
推荐指数
1
解决办法
182
查看次数

Python:使用locals()打印字典值

Python中最好的工具之一是locals()字符串格式化:

>>> st="asdasd"
>>> print "%(st)s" % locals()
asdasd
Run Code Online (Sandbox Code Playgroud)

但是,使用字典值无法做到这一点:

>>> d={1:2, 3:4}
>>> print "%(d[1])s" % locals()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'd[1]'
Run Code Online (Sandbox Code Playgroud)

知道如何使这项工作?

python dictionary string-formatting syntactic-sugar

4
推荐指数
1
解决办法
6024
查看次数

是否有在python中查询字典的简写?

这是我想要执行的查询类型,用伪代码编写:

select blob from blobs where blob['color'] == 'red' having maximum(blob['size'])
Run Code Online (Sandbox Code Playgroud)

显然,我可以在python中这样写:

redBlobs = [];

for blob in blobs:
    if blob['color'] == 'red':
        redBlobs.append('blob')

largestBlob = None

for redBlob in redBlobs:
    if largestBlob == None or redBlob['size'] > largestBlob['size']:
        largestBlob = redBlob

return largestBlob
Run Code Online (Sandbox Code Playgroud)

但我怀疑有一种更清洁的方式.我是python的新手,所以我仍然非常迫切地接受它.

编辑:

这是我在查看SO上的其他一些问题后想出的解决方案:

max([blob for blob in blobs if blob['color'] == 'red'], key = lambda b: b['size'])
Run Code Online (Sandbox Code Playgroud)

据推测,有更好的方法.

python syntactic-sugar

4
推荐指数
1
解决办法
2163
查看次数

Rcpp糖为等级功能

我一直在尝试使用Rcpp在c ++中获得向量的等级.我使用过其他糖功能

is_na();
Run Code Online (Sandbox Code Playgroud)

c ++中的等级R函数是否有类似的糖函数.还有Rcpp中可用的R糖功能列表/

c++ r syntactic-sugar rcpp

4
推荐指数
1
解决办法
1056
查看次数

如何在没有语法糖的情况下实例化Python列表

我想向一些学生解释Python中的对象实例化.他们已经编写了几个会话.现在,我想向他们透露他们一直在处理物体.例如,它们一直使用的浮点数,整数,布尔值,列表都是对象.

现在我希望它们展示如何实例化对象.我想通过使用他们已经熟悉的对象(例如,列表)来展示它们.但是,有没有办法非常明确地实例化一个空列表,例如myList = List()

我只熟悉句法糖方法,比如

myList = []
Run Code Online (Sandbox Code Playgroud)

或使用内置功能

myList = list()
Run Code Online (Sandbox Code Playgroud)

可以使用常规实例化语法来完成吗?

python object instantiation syntactic-sugar

4
推荐指数
1
解决办法
218
查看次数

将额外代码添加到for循环的增量步骤

喜欢这里编程的学生.我已经用java编程了4年,我觉得我对语言的工作方式有了很好的理解.然而,最近我偶然发现了让我感到惊讶的事情.在考虑for循环时,我想"嘿,for循环的增量部分只是一个操作,我可以把其他东西放在那里吗?" 并最终在一些游戏后我决定试试这个:

for(int i = 0; i < 10; i++, System.out.print("foo"), System.out.print("bar")){}
Run Code Online (Sandbox Code Playgroud)

这是一个完全为空的for循环,在循环的增量步骤中打印调用.令我惊讶的是,这个循环正常运行,每次循环时都会输出foo和bar.据我所知,您可以根据需要添加任意数量的方法.

这是什么?我搜索它并没有找到任何东西.我从来没有学过这个.应该避免吗?应该用吗?为什么它甚至有效?我找不到任何显示此示例的资源.来自真正的程序员的任何意见都很高兴听到!

java for-loop syntactic-sugar

4
推荐指数
1
解决办法
96
查看次数

Scala - 可以在反引号标识符上使用匹配提取吗?

问题有点难以表达,所以我将尝试提供一个例子:

def myThing(): (String, String, String) = ("", "", "")

// Illegal, this is a Match
val (`r-1`, `r-2`, `r-3`) = myThing()

// Legal
val `r-1` = myThing()._1
Run Code Online (Sandbox Code Playgroud)

第一个评估是无效的,因为这在技术上是匹配表达式,并且在匹配反引号中标记的标识符被假定为对范围中现有val的引用.

虽然在比赛之外,我可以自由地定义"r-1".

有没有办法使用复杂的变量名称进行匹配提取?

scala syntactic-sugar pattern-matching backticks

4
推荐指数
1
解决办法
64
查看次数