【发布时间】:2020-07-28 18:01:50
【问题描述】:
我是 scala 编码的新手,我对某些事情感到好奇,并且很难在网上找到答案。我有这个数组,它接受多个不同类型的参数(:Any)
val arguments= Array("Monday",10,20,Array("test","test2"), if(4 == 4){ "true"})
我迭代并打印了其中的内容。除了索引 3 处的数组之外,所有内容都正确打印。我得到了我相信的对象内存地址,这是可以理解的——Java 也会发生同样的事情。但我很好奇,您将如何访问它?
我尝试将 arguments(3) 的值保存在数组 (val arr:Array[String] = arguments(3)) 中,但没有成功,因为存在类型不匹配 (any != Array[String])
有什么建议吗?这可能是我对函数式编程理解的差距。
【问题讨论】:
-
拥有一个 Array 是一种不好的做法,拥有一个 Any 是另一种不好的做法。两者兼有是糟糕设计的严重标志,解决此问题的最佳方法是退后一步并重新设计您的解决方案以避免这种情况。
-
@LuisMiguelMejíaSuárez 感谢您的反馈!我只是想玩玩,所以这不是问题的真正解决方案,但我想知道如何在 scala 中开发更好的实践?您对某些资源有什么建议吗?
-
您是否在关注一些学习语言的资源? Scala 是 OOP 和 FP 的混合体,学习它比学习语法和最佳实践更复杂,你必须学习一种不同的方式来思考和解决问题。
-
我明白了。我有 Java 背景并使用过其他 OOP 语言,但从未使用过 FP。我的工作中有一个项目需要我用 Scala 编写代码,所以我只是在网上学习教程,并致力于构建我之前在 Scala 中用 Java 编写的项目以跟上进度。不过我的学习方法可能有缺陷。
-
我建议您参加任何可以逐步介绍该语言的正规课程或书籍。 here你可以找到一个包含各种资源的列表。