小编ehn*_*ark的帖子

Scala中的大量Android开发

有没有人在Scala中开发大量Android应用程序?这是一个可行的选择吗?有没有成熟的开发环境?鉴于Scala Eclipse插件的状态,看起来好像除了IntelliJ Ultimate之外没有好的IDE支持.

一些人已经发布了教程,描述了如何捏造Eclipse ADT以对Scala进行排序,以及如何使用Proguard 来修改Scala库,但除此之外,关于这一主题的讨论很少令人担忧.

更新2011-08-01:来自Bump应用程序背后开发人员的Android + Scala上一篇有趣的文章:Bump Dev Blog - 我们如何在Bump for Android中使用Scala

android scala intellij-idea adt

48
推荐指数
2
解决办法
7972
查看次数

Kotlin和受歧视的工会(总和类型)

Kotlin有没有像歧视的工会(总和类型)?什么是惯用的Kotlin翻译(F#):

type OrderMessage =
    | New of Id: int * Quantity: int
    | Cancel of Id: int

let handleMessage msg = 
    match msg with
        | New(id, qty) -> handleNew id qty
        | Cancel(id) -> handleCxl id
Run Code Online (Sandbox Code Playgroud)

algebraic-data-types discriminated-union kotlin

37
推荐指数
3
解决办法
8803
查看次数

C#泛型 - 没有设计的下限?

我正在阅读Codehua at Work中对Joshua Bloch的采访,他在Java 5中对泛型的介绍感到遗憾.他不喜欢具体的实现,主要是因为方差支持--Java的通配符 - 使得它不必要地复杂化.

据我所知,C#3没有像明确的,有界的通配符那样的东西,例如你不能声明一个接收Asset或任何Asset子类(void PriceBatch(Collection<? extends Asset> assets)在Java中?)的方法PriceBatch .

有谁知道为什么没有将通配符和边界添加到C#中?故意遗漏这些功能以使语言更简单,或者这是他们还没有实现的东西呢?

编辑:圣烟,Eric Lippert本人的评论!在阅读了他和Paul的深刻见解之后,我意识到至少支持上限,并且上面的例子可以转换为C#:

void PriceBatch<T>(ICollection<T> assets) where T : Asset
Run Code Online (Sandbox Code Playgroud)

另一方面,显然不支持下限,因为Eric在他的第二条评论中说,例如,可能没有办法直接将这个(有点人为的)Java代码转换为C#:

public class Asset {}
public class Derivative extends Asset {}
public class VanillaOption extends Derivative {}

public static <T extends Asset> void copyAssets(Collection<T> src, Collection<? super T> dst) {
    for(T asset : src) dst.add(asset);
}

Collection<VanillaOption> src = new ArrayList<VanillaOption>();
[...]
Collection<Derivative> dst = new ArrayList<Derivative>();
[...]
copyAssets(src, dst);
Run Code Online (Sandbox Code Playgroud)

我对么?如果是这种情况,C#有上限而不是下限的特殊原因是什么?

c# generics wildcard

17
推荐指数
3
解决办法
4135
查看次数

绑定视图模型属性在后台线程中更新; UI会始终看到更新的值吗?

如果我通过视图模型将某些(非易失性)数据绑定到UI,并且我从后台线程更新此数据而不锁定任何内容,并触发PropertyChanged事件,我保证 UI将看到此更新吗?如果我,那为什么?

我可以看到CLRBindingWorker调用Dispatcher.BeginInvoke,从而确保从UI线程中读取属性.我想知道的是,UI线程中的属性值是否总是"新鲜"(例如,是否可能发生类似于http://www.yoda.arachsys.com/csharp/threads/volatility.shtml的场景).

一个以前的答案表明这确实是这样的,但没有任何解释.

例:

public class MyViewModel : INotifyPropertyChanged
{
    // Bound to the view as <TextBlock Text="{Binding Data}" />
    private long _data;
    public long Data
    {
        get { return _data; }
        set
        {
            _data = value;
            FirePropertyChanged("Data");
        }
    }

    public MyViewModel()
    {
        new Thread(Updater).Start();
    }

    private void Updater()
    {
        while (true)
        {
            Data++;
            Thread.Sleep(1000);
        }
    }

    private void FirePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null) 
            PropertyChanged(this, new …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf multithreading memory-model

6
推荐指数
1
解决办法
2219
查看次数

X是CSS对Javascript的GWT; 什么是X?

是否有一种结构化语言以合理的方式声明样式,然后可以将其呈现为浏览器特定的css文件,类似于GWT对Javascript的作用?

它理想地是一种支持变量,处理浏览器怪癖和差异的语言(例如过滤器:alpha与不透明度),为诸如居中等常见任务提供直观的语法,并且有一种方法可以为功能较弱的浏览器表达回退.

css gwt

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