隐式转换似乎是 Scala 的一个主要且有争议的特性,而它们在 C# 中的重要性似乎要小得多。这两种语言有什么区别?是否有任何地方我被迫在 Scala 中使用隐式,或者我总是可以选择我希望转换是隐式的还是显式的,就像在 C# 中一样?通常在 C# 中,我喜欢显式地进行转换,以保持对程序员意图的类型检查,即使消费者是我自己也是如此。
我是否正确地说 C# 或 Scala 都不能隐式拆分或组合方法/函数参数?如 def myMethod(v1: Int, v2: Int) 将不接受 Tuple2[Int, Int] 作为其参数列表,而 def yourMethod(v1: Tuple2[Int, Int]) 将不接受两个整数作为其参数列表. 据推测,语言设计者必须考虑隐式/显式参数拆分/组合。当使用多个但相似的图形库的点结构时,我确实发现此功能是可取的。