list – scala Range for Long
我是
Scala语言的新手.
我需要Range for Long类型. 我需要一个[1,2,3 … 10000000]列表和步骤1.如果我使用直到/我因为使用??Long而不是Int而得到错误. 我尝试编写一个简单的函数,它需要一个开始,一个结束和一个空List,并生成一个[start .. end]列表. 这是我的功能: def range_l(start : Long,end : Long,list : List[Long]) : List[Long] = { if (start == end){ val add_to_list = start :: list return add_to_list } else { val add_to_list = start :: list range_l(start + 1,end,add_to_list) } } 如果我把它称为:range_l(1L,1000000L,List())我在以下行中得到OutOfMemory错误:add_to_list = start :: list 你能给我什么建议?如何获得Range [Long]或如何优化功能.我怎样才能避免OutOfMemory? 谢谢. 解决方法
您可以使用以下语法创建此类范围:
val range = 1L to 10000000L ‘L’必须通知编译器litterals是longs而不是int. 然后,您可以在实例范围上使用几乎所有List方法.它不应该填满你的内存,因为中间值是在需要时生成的.范围可以传递给期望Traversable [Long],Seq [Long],Iterable [Long]等的任何方法. 但是,如果你真的需要List只调用range.toList(并增加堆大小以容纳所有列表元素)… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- scala – Playframework 2.0在视图模板中定义功能
- twitter-bootstrap – 为什么webpack scss不想包含字体?
- 让gVim的vimdiff忽略大小写
- 将Scala列表与Java列表进行比较
- angular – Async Validator Throw Expected validator返回
- scala – Slick并按选项列过滤
- angularjs – 如何使用Ionic 2框架创建登录页面,然后导致选
- angular – 检查router.url是否包含特定的字符串?
- angularjs – 不显示在$scope中的表单元素
- 翻译:使用 Redux 和 ngrx 创建更佳的 Angular 2