小编kor*_*dge的帖子

Scala - 如何打印像(漂亮打印)树一样的案例类

我正在使用Scala Combinators创建解析器.太棒了.我最终得到的是一长串陷入困境的案例类,例如:ClassDecl(Complex,List(VarDecl(Real,float), VarDecl(Imag,float)))只需要100倍.我想知道是否有一种很好的方法以树状方式打印这样的案例类,以便更容易阅读..?(或其他形式的漂亮印刷品)

ClassDecl
  name = Complex
  fields =
  - VarDecl
      name = Real
      type = float
  - VarDecl
      name = Imag
      type = float
Run Code Online (Sandbox Code Playgroud)

我想结束这样的事情

编辑:奖金问题

是否还有一种方法来显示参数的名称..?喜欢:ClassDecl(name=Complex, fields=List( ... )

scala pretty-print case-class

47
推荐指数
7
解决办法
2万
查看次数

如何使angular.js重新评估/重新编译内部html?

我正在制作一个修改它的内部html的指令.代码到目前为止:

.directive('autotranslate', function($interpolate) {
    return function(scope, element, attr) {
      var html = element.html();
      debugger;
      html = html.replace(/\[\[(\w+)\]\]/g, function(_, text) {
        return '<span translate="' + text + '"></span>';
      });
      element.html(html);
    }
  })
Run Code Online (Sandbox Code Playgroud)

它的工作原理,除了内部html不是由角度评估.我想触发对子element树的重估.有没有办法做到这一点?

谢谢 :)

interpolation angularjs angularjs-directive

40
推荐指数
3
解决办法
4万
查看次数

如何将方法添加到(JSON)对象的原型?

假设我从服务器收到一些JSON对象,例如Person对象的一些数据:

{firstName: "Bjarne", lastName: "Fisk"}
Run Code Online (Sandbox Code Playgroud)

现在,我希望在这些数据之上有一些方法,例如用于计算fullName:

fullName: function() { return this.firstName + " " + this.lastName; }
Run Code Online (Sandbox Code Playgroud)

这样我就可以

var personData = {firstName: "Bjarne", lastName: "Fisk"};
var person = PROFIT(personData);
person.fullName(); // => "Bjarne Fisk"
Run Code Online (Sandbox Code Playgroud)

我基本上想要在这里做的是向对象的原型添加一个方法.该fullName()方法是通用的,因此不应添加到数据对象本身.喜欢..:

personData.fullName = function() { return this.firstName + " " + this.lastName; }
Run Code Online (Sandbox Code Playgroud)

......会导致很多冗余; 并且可以说是"污染"数据对象.

将此类方法添加到简单数据对象的当前最佳实践方法是什么?

编辑:

略微偏离主题,但如果上面的问题可以解决,那么就可以做一些很好的伪 - pattern matching就像这样:

if ( p = Person(data) ) {
   console.log(p.fullName());
} else if ( d = Dog(data) ) {
   console.log("I'm a dog lol. Hear …
Run Code Online (Sandbox Code Playgroud)

javascript json prototype

30
推荐指数
3
解决办法
3万
查看次数

node.js + coffeescript + jasmine的好IDE

使用Jasmine,node.js和coffeescript的组合可以开发出哪些好的IDE.

到目前为止,我们正在考虑WebStorm,但它真的很难开始.我们发现很少有关于node.js(和coffeescript)与IDE结合的文档.

还有哪些其他选择?(是否有任何指南可以帮助我们开始/启动和运行?)

编辑:

  • 我和我的团队正在运行Windows/OSX.
  • Vim/Emacs 不是一个选项.我们需要一些图形界面/ IDE.
  • IDE中的node.js和coffee必须很容易"开始".最好稍微"定制"以与node.js一起使用.
    • WebStorm承诺这样做,然而,开始变得相当困难.运行.coffee似乎不起作用.

谢谢 :)

javascript node.js coffeescript jasmine webstorm

16
推荐指数
1
解决办法
9602
查看次数

开源Node.js(和Express)项目

什么是开源Node.js(和Express)项目?如果使用CoffeeScript,那将是一个巨大的优势.

我需要一些灵感.

javascript open-source node.js coffeescript express

14
推荐指数
1
解决办法
8272
查看次数

Node.js + Express和CoffeeScript的IDE或编辑器

优选地是IDE.对Subversion/Git的集成支持是一个很大的优势,因为我们是一个由6人组成的团队.

VIM/Emacs是不与其他的是流行的,因为它是非常尴尬,很难上手,它需要努力学习了很多,从我们的项目把焦点之遥.

我们都习惯/熟悉Eclipse,因此类似于EclipseIDE也是一个很大的优势.

感谢:D

javascript ide node.js coffeescript express

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

找到集合中最常见/最常见的元素?

找到集合中最常见/最常见元素的最佳方法是什么?例如:

list = List(1, 3, 4, 4, 2)
list.mostCommon   // => 4        !! This is what I want !!
Run Code Online (Sandbox Code Playgroud)

嗯..什么人可以做的是做groupBy第一,然后map他们通过length,然后选择最大的一个.那么你会得到:

Map(1 -> List(1), 4 -> List(4, 4), 3 -> List(3), 2 -> List(2))
(...)
Map(1 -> 1, 4 -> 2, 3 -> 1, 2 -> 1)  // mapped by length. 4 -> 2  since there's two 4s
Run Code Online (Sandbox Code Playgroud)

最后,选择4映射到最高数字(2)的key ().(嵌套问题:最好的方法是什么?).但这对于这么简单的操作似乎有很多工作要做..?

是否有更好/更惯用的方法来做到这一点?

scala list

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

用Meteor.js刮刮

我可以用meteor.js刮掉吗?刚发现cheerio哪种作品非常出色request.我可以将这些用于流星,还是有类似的东西?

你有一个有效的例子吗?

node.js web-scraping meteor cheerio

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

为什么在Scala中允许使用未初始化的变量?

可能重复:
转发引用 - 为什么这段代码会编译?
Scala和前向引用

object Main extends App {
  val a = 4
  val b = a + c
  val c = 5
  println(b) // => 4
}
Run Code Online (Sandbox Code Playgroud)

这将打印4作为c显然是0b被分配.a并且c是价值观,因此它们不应该0在一个时刻,而5在下一个时刻.在Scala中,它们应该是不可变的,对吧?

我不应该至少得到某种警告吗?当然,在上面的例子中,你必须是一个想念的白痴,但在更复杂的情况下,很难说出它的顺序.

我当然知道我可以使用,lazy val b = ...但如果我认为我把它按正确的顺序排列,当我真的没有时.不是很危险,因为根本没有得到任何警告吗?运行得很好!?这是如何获得通过两者的Scala IDE 编译器?这是故意的吗?或者这是一个无法修复的错误?:/

:)

jvm scala forward-reference

10
推荐指数
0
解决办法
135
查看次数

命名闭包会污染全局/窗口对象吗?

根据这个节点样式指南,给闭包一个名字是一个很好的做法:

req.on('end', function onEnd() {
  console.log('winning');
});
Run Code Online (Sandbox Code Playgroud)

错误

req.on('end', function() {
  console.log('losing');
});
Run Code Online (Sandbox Code Playgroud)

但是,我习惯于思考

function someName() { someStatements(); }
Run Code Online (Sandbox Code Playgroud)

...语法作为创建全局变量someNamewindow.someName该函数的东西.这真的是一个很好的做法,还是一个非常糟糕的风格指南?

javascript coding-style v8 node.js

7
推荐指数
1
解决办法
553
查看次数