لماذا لم تكن مجموعة Scala غير قابلة للتغيير في نوعها؟


0 Answers

في http://www.scala-lang.org/node/9764 يكتب مارتن أوندرسكي:

"بالنسبة إلى مسألة المجموعات ، أعتقد أن عدم التباين ينبع أيضًا من التطبيقات. يتم تنفيذ مجموعات شائعة كقواعد إرشادية ، وهي صفائف غير متغيرة من النوع الرئيسي. أوافق على أنها مخالفة مزعجة قليلاً".

لذا ، يبدو أن كل جهودنا لبناء سبب مبدئي لهذا كانت مضللة :-)

Question

تعديل : أعد كتابة هذا السؤال استنادًا إلى الإجابة الأصلية

فئة scala.collection.immutable.Set ليست scala.collection.immutable.Set في معلمة النوع الخاص به. لماذا هذا؟

import scala.collection.immutable._

def foo(s: Set[CharSequence]): Unit = {
    println(s)
}

def bar(): Unit = {
   val s: Set[String] = Set("Hello", "World");
   foo(s); //DOES NOT COMPILE, regardless of whether type is declared 
           //explicitly in the val s declaration
}





Related