[问题] scala使用上的一些疑问

楼主: ireullin (raison detre)   2015-05-07 11:15:18
小弟个人比较熟悉的语言是ruby与c++
目前在自学scala
已经可以用scala写出一些简单的东西
完成一些工作
多半是写script取代ruby的脚色
虽然觉得还是ruby比较好用
但是就是把这些当作是练习所以故意用scala
但是过程中却觉得有一些scala的精随还没办法掌握
希望前辈们提点一下
如果不适合在这边发问
请跟我说,我会把这篇文章删除
1. List的用法或时机
我想在写程式的时候遇到需要用 container 来储存资料的机会很高
如java中
ArrayList<int> al = new ArrayList<int>();
for(int i=0; i<10; i++) al.add(i);
但在scala中
var list = List(0)
for(i <- 1 to 9) list = i :: list
list = list.reverse
list 每次都回传一个新的物件而不是将值储存在物件自己本身
而且都插在最前面
最后使用的时候还要反过来
这样效率真的有比较高?
还是说list根本不是在这种状况下使用的
如果不是,建议是?
2. 尾递回指的是
递回我懂,但是很多地方都特别提到尾递回这个词
有特殊的意义或用途吗
3. DSL 的用途是
http://www.scala-lang.org/old/node/1403
虽然这篇里头有讲
但我不是很能意会
以上
麻烦大家了
作者: fireslayer (fireslayer)   2015-05-07 11:19:00
tail-recursive表现跟一般递回不一样keyword: tail recursive(recursion)
楼主: ireullin (raison detre)   2015-05-07 11:36:00
谢谢,尾递回的方式我懂了
作者: sivid (go back to sleep)   2015-05-07 16:27:00
你似乎把List当mutable用?scala.collection.mutable scala.collection.immutable两种不一样
楼主: ireullin (raison detre)   2015-05-07 17:19:00
了解,是因为programming in scala中大部分都使用list当范例,所以才想说是不是我哪里搞错了

Links booklink

Contact Us: admin [ a t ] ucptt.com