1

私はこの問題を抱えており、それがどこから来たのかわかりません。コード:

class applicationFrameworksManager =
object(this)
val mutable frameworks = []
method add_framework name = ()(* if not (List.mem name frameworks) then frameworks <- List.append frameworks [name]; *)
method get_frameworks = frameworks

終わり;;

そしてエラー:

Error: Some type variables are unbound in this type:
     class applicationFrameworksManager :
       object
         val mutable frameworks : 'a list
         method add_framework : 'b -> unit
         method get_frameworks : 'a list
       end
   The method add_framework has type 'b -> unit where 'b is unbound

make: * [genobjc.cmx] エラー 2

誰でも助けることができますか?何にバインドできますか?ありがとう。このクラスに多くの文字列を追加し、最後に一意のものだけを取得したいと考えています。

4

1 に答える 1

3

の型[]はポリモーフィックであるため、その型'a listにはバインドされていない型変数が含まれています。文字列を追加するだけの場合の簡単な修正は、型を宣言することです。

val mutable frameworks : string list = []

現状のクラスは多態的です。つまり、あらゆるリストの管理に使用できます。これを行うには、管理対象要素の型の型パラメーターをクラスに明示的に指定します。しかし、それは必要ないようです。

于 2012-10-17T15:01:46.363 に答える