私はCoursera課題と2週目に取り組んでいます。今週の課題は難しくありませんが、非常に混乱します。スカラ "タイプ"エイリアスの混乱
は、私は、コードの下に書いて、それが
def union(s:Set[Int], t:Set[Int]):Set[Int] = s union t
正常に動作します。しかし、私はセットのエイリアスを作成し、私は労働組合のためにエラーが発生します
今type Set = Int => Boolean
def union(s:Set, t:Set):Set = s union t
として上記リライトするタイプを使用する場合、メンバーではありません設定
Set[T]
がという名前の関数を定義するので、これは動作します
型にはエイリアシングがありません[Int]を設定しますか? – Tahseen
@DarkStarいいえ、 'Set'という標準ライブラリクラスとは関係のない新しいタイプの' Set'を作成しています。その新しいタイプの 'Set'は' Int => Boolean'のエイリアスです。つまり、def union(s:Set、t:Set):Setを書くと、def union(int:> Boolean、t:Int => Boolean)と同じです:Int => Boolean' 。 – sepp2k
あなたはそれが正しいと言ってくれてありがとう。タイプ 'Set = Int => Boolean'を使用した瞬間、新しい関数エイリアスが作成されました。新しいエイリアスは整数をとり、ブール値を返します。だから私はあなたにも明確にするために+1を与える。ありがとう – Tahseen