`
nj0308
  • 浏览: 4520 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论
文章列表
   本人在自学使用Scala的过程中,发现此语言还是有一些缺陷,或者更确切的说有一些个人感觉还可以优化的地方(当然不排除初学者对该语言理解不够的地方)。     1、函数不支持变长参数。当然排除掉先定义全参数函数,然后定义缺少某些参数的函数通过缺省值指向全参数函数的情况。这儿的变参应该是指不指定最长参数个数的情况。当然,一般来说必须使用变参的情况还是不多,而且绝大多少都可以通过包含Collection类型(及其子类)的参数来变通实现,只是与Ruby比较显得啰嗦。    2、作为支持函数式编程的语言,本人觉得应该有缓存函数值的机制。当然前提是有区分有副作用函数和无副作用函数的机制(就像可变变 ...
1、map(collect) 和 map!(collect!) 方法返回类型不一致    map返回的是Array,而map!返回的是Set。    当然,这是小缺陷。 2、如果Set的元素也是Set类型,并不会对比较为true的多个元素进行合并 s1 = Set.new [1, 2] => #<Set: {1, 2}> s2 = Set.new [1, 2] => #<Set: {1, 2}> s1 == s2 => true s = Set.new => #<Set: {} ...
缘由:我定义了一个类(彩票Cp),其中定义了类变量(@@cps)用于记录所有被实例化的对象,并通过类方法(self.get_cps)提供外部接口。 问题是,我要测试我的彩票程序在最近50期的实际情况与模拟产生的数据进行比较,但我只想一次把所有的历史数据都实例化,然后再修改Cp类的get_cps类方法。我的做法是这样的 类定义: Class Cp @@cps = [] class << self def get_cps @@cps end ... end def initialize @@ ...
    先以一个实例引出问题。假设我们要对一篇文章中使用的单词进行详细统计,也就是我需要知道一个单词出现在文章的哪几行。显然,通过Hash来统计和使用都是最方便的。同时为了在遍历文件进行单词统计的过程中不出现刺眼的if判断,我们对Hash使用了缺省值。 word_lines = Hash.new([])     统计时直接使用 word_lines[word] << line     从表面逻辑上看,上面的使用似乎都没问题,程序也在执行得比较顺利 ......可是?...怎么回事,结果显然不对。调试吧,在统计时把word_lines/word/line/word_lines[wor ...
Global site tag (gtag.js) - Google Analytics