小编gre*_*man的帖子

Scala中的基本集合类型是什么?

或者换句话说,Scala中C#IEnumerable <T>的等价物是什么?我以为是Seq [T],但我已经发现,HashMap没有实现这个,所以它不可能是真的.

那么,它是什么?

collections types scala

12
推荐指数
1
解决办法
1411
查看次数

如何使用Linq XML强制显式标记关闭?

这与以下问题相同: 使用System.Xml.Linq命名空间的显式元素关闭标记

但我使用Net 4.0,答案不再适用.

问题是我保存标签没有真正的值,我的输出XML看起来像这样:

<field/>

但我需要的是始终打开和关闭标签,即

<field></field>

问题:怎么做?

编辑

1

添加空节点:

if (field_xml == null) // always true, because I create the file for the first time
{
    field_xml = new XElement(XMLKeys.field,String.Empty);
    table_xml.Add(field_xml);
}
field_xml.SetAttributeValue(XMLKeys.name, field_info.Name);
// ... setting some other attributes of this node
Run Code Online (Sandbox Code Playgroud)

然后,保存xml:

var writer = new FullEndingXmlTextWriter(parameters.OutputFilename, Encoding.UTF8);
root_xml.Save(writer);
Run Code Online (Sandbox Code Playgroud)

FullEndingXmlTextWriter是Evil Greebo指出的专门类(它应该强制显式关闭标记).

c# xml linq tags

11
推荐指数
2
解决办法
9213
查看次数

如何使用scala.xml添加xml文档信息?

首先:

  • 我知道反xml和scale,但我想使用标准的scala.xml
  • 我更喜欢使用显式方法构建xml文档,而不是使用Scala内置的隐式xml语法

好的,所以我有这样一段代码:

val text = new scala.xml.Text("just a text")
val root = new scala.xml.Elem(null,"element",null,scala.xml.TopScope,text)
val doc = new scala.xml.Document()
doc.docElem = root
println(doc.toString())
Run Code Online (Sandbox Code Playgroud)

几乎不错,但结果我得到:

<element>just a text</element>
Run Code Online (Sandbox Code Playgroud)

我也想得到XML标题,如:

<?xml version="1.0"?>
<element>just a text</element>
Run Code Online (Sandbox Code Playgroud)

问题:如何添加?

当然,从常识的方面来说,不是一些println带有标题的额外逐字的黑客攻击;-).

xml document scala creation

10
推荐指数
1
解决办法
1433
查看次数

如何将主方法移动到Scala中的另一个类?

IntelliJ IDEA 10.5(可能这很重要).

我是Scala的新手,所以我以一种尴尬的方式开始.我用两个类创建了一个文件 - 空的MainApp和另一个类,HelloWorld和方法main.

我编译并执行 - IntelliJ自动检测到HelloWorld为主类.还可以.

然后,我将main方法移动到MainApp,并删除(然后清空)HelloWorld类.当我试图运行它时,IntelliJ仍然坚持使用HelloWorld.所以我重新配置了项目并选择了MainApp作为主类.

我尝试用这样的结果运行它:

MainApp主要方法应该是静态的

我完全不解.首先,Scala没有静态方法.第二,为什么它现在不编译,之前编译(使用HelloWorld类).我虽然只要求有一个主要方法.

预先感谢您的帮助.

请注意:我知道我可以从头开始一个新项目以完全避免这个问题,但我想学习一些东西,即了解发生了什么,并修复这个项目.

program-entry-point scala compilation intellij-idea

9
推荐指数
1
解决办法
3083
查看次数

如何为joda-time导入FromString?

我尝试使用joda-time库来更轻松地测量程序的执行时间(而不是用于分析,仅适用于用户).

但是当我编译我的项目时,我得到关于缺少依赖项的错误 - 缺少"FromString"类.我尝试显式导入它,但是当输入intellisense(IntelliJ)甚至没有检测到它时,另一方面只有一个jar可以从joda-time网站下载.

我该如何解决这种依赖?

我知道JT的包装,但是现在我想直接使用它.

dependencies scala jodatime

9
推荐指数
2
解决办法
3021
查看次数

如何在弹出编辑器中禁用某些列的编辑?

ASP.Net MVC 3,Kendo UI Web,Kendo网格控件.

我将几个字段配置为只读:

.Model(model =>
      {
          model.Field(it => it.foobar).Editable(false);
          ...
Run Code Online (Sandbox Code Playgroud)

它在内联模式下按预期工作.但是当我将模式切换为弹出窗口时,编辑器会显示整个结构,因此我可以编辑我想要的任何字段(标记为不可编辑的字段).

那么如何标记它们以便弹出编辑器只显示标记为编辑的那些?

gridview kendo-ui

9
推荐指数
2
解决办法
8377
查看次数

Html.Partial和Html.Action方法有什么区别?

我有一个控制器,动作返回PartialViewResult并用它查看.为了测试我输出当前的DateTime(在行动中),并在视图中检查它是否为空,所以我知道我得到了什么.

当我尝试将该视图"嵌入"另一个视图时,Html.Action我获得当前的日期时间,因此我的操作被调用.

但是当我使用Html.Partial视图渲染为null时,我的动作方法不会被调用.此外,两个断点和调试器也确认,在后一种情况下,我的动作方法不会被调用.

行动方式:

public PartialViewResult Test()
{
  return PartialView(DateTime.Now);
}
Run Code Online (Sandbox Code Playgroud)

(部分)查看:

@model DateTime?

<p>@(Model ?? DateTime.MinValue)</p>
Run Code Online (Sandbox Code Playgroud)

并从主视图调用是@Html.Action("Test")@Html.Partial("Test").

asp.net-mvc-3

9
推荐指数
1
解决办法
8503
查看次数

字典的时间复杂度和空间复杂度是多少?

假设我有大小为 N(即 N 个元素)的数据,并且字典是用容量 N 创建的。以下的复杂性是多少:

  • 整个字典的空间
  • time -- 将条目添加到字典中

MS 仅显示条目检索接近 O(1)。但其余的呢?

c# dictionary time-complexity space-complexity

9
推荐指数
2
解决办法
1万
查看次数

如何在构造函数中添加一些动作?

天真的问题我相信,但我发现只是从构造函数中调用其他构造函数.我需要调用一个方法.我的班级(开始):

class ScopedIterator[T](val iter : Iterator[T])
{
  private var had_next : Boolean;
  private var value : T;

  moveNext();

  ...
Run Code Online (Sandbox Code Playgroud)

所以我想有一个带有单个参数的构造函数,并在这样的构造函数中调用方法moveNext.就这样.

当我编译代码时,我得到错误:

错误:抽象成员可能没有私有修饰符

private var had_next:Boolean;

价值相同.

我改成了:

class ScopedIterator[T]
{
  private var had_next : Boolean;
  private var value : T;
  private var iter : Iterator[T];

  def this(it : Iterator[T]) =
  {
    iter = it;
    moveNext();
  }

  ...
Run Code Online (Sandbox Code Playgroud)

但现在我得到"iter = it"的错误:

错误:'this'预期但找到了标识符.

iter = it;

如何在Scala中编写这样的构造函数?

constructor scala method-call

8
推荐指数
2
解决办法
6102
查看次数

拥有宏是否真的需要同质性?

2012-02-04由"homoiconicity"字样赞助http://en.wikipedia.org/wiki/Homoiconicity.

背景:我即将选择哪本关于Clojure的书 - "Clojure in Action"或(4月底传入)"Clojure Programming"(您可以通过O'Reilly Rough Cuts阅读 ,一半页面是可见的).令我震惊的是,在这两本书中,这种属性 - 同质性 - 得到了如此重视.

由于Clojure的根源是以Lisp为基础的,所以我提到 "死性感"这本书真是太重要了.好吧,我可以看到详细解释的宏,但我没有听到提到的重点.现在比较一下(引自"Clojure in Action")

这种同质性也是Clojure宏观系统成为可能的原因.

它几乎看起来没有它,宏是不可能的.甚至维基百科声明(上面的链接)也更加平衡,但这些来源(*)都没有计算人为因素而支持英语语法.

如果我没有弄错的话,宏语法(类似于Lisp)可以在C#中实现(例如),只需要C#团队付出更多努力.但这是设计师团队的成本,而不是用户(?).第二 - habbits很重要.如果在现实生活中你认为"a + b",并且在计算机世界中你不断将它翻译成"+ a b",那么生产力就会受到影响(当我从C++ functor转到C#lambdas时,我可以看到这一点).

这个赞美,即Clojure程序员几乎直接将程序编写为AST,让我感到害怕,因为"由于直接用十六进制代码编写代码,不仅你学习十六进制系统,而且你更接近机器".

总结一下 - 我喜欢元编程,我喜欢类似Lisp的宏(虽然我不是Lisper),但我在这里看到两件事 - 宏和同质性.第一个毫无疑问是伟大的,第二个 - 不是那么多(至于我的理解),因为它使人类适合计算机的需要,它应该是另一种方式.

这个问题

同性恋真的对人类(语言的最终用户)有益,或者它实际上几乎只对语言设计者有益吗?非常欢迎例子!

或者以防万一我改写 - 假设给定的语言有Lisp-macros,"增加"同质性会提高最终用户的生产力吗?Expresiveness?还是相反?

(*)我不能百分百肯定,因为我只看到一小部分Clojure书籍,我不是在阅读它们,只是评估它们的购买.

更新

谢谢大家的答案,可惜我只选择一个作为解决方案:-),这并不意味着我更少重视别人,这对我来说是最完整的.

lisp macros clojure

8
推荐指数
3
解决办法
899
查看次数