Wie würde ich einen zusammengesetzten Schlüssel in Scala darstellen?

7

Wenn ich

habe %Vor%

Ist es möglich, beide zu hacken? Ich könnte etwas wie

machen %Vor%

Aber das scheint ein bisschen klobig

    
Hoa 28.10.2011, 05:36
quelle

2 Antworten

9

Ich bevorzuge den neuen Datentyp über Tuple aus drei Gründen:

%Vor%
  1. Sie haben einen Namen, insbesondere in Compiler-Warnungen und ein " expected CompoundKey " ist klarer als ein " expected Tuple2[String,String] ". Oder es hilft Ihnen einfach mit einer Typ-Annotation, Ihren eigenen Code lesbarer zu machen, besonders in verschachtelten Strukturen wie Maps

    val k: CompoundKey = expensiveComputationOrNonObviousMethodCallsInARow(...)
    val keyMap: Map[CompoundKey,Key] anstelle von Map[(String,String),Key]

  2. Der Zugriff auf die Unterschlüssel in CompoundKey kann nach Name erfolgen:

    val ckey = CompoundKey("foo","bar")
    ckey.key1 anstelle von ckey._1

  3. Sie können später Ihre Darstellung des verschachtelten Typs, hier String , ändern. Das bedeutet, wenn Sie String zu dem ändern, was Sie Tuple2[String,String] nicht im gesamten Code ändern müssen. Nur CompoundKey muss angepasst werden.

(Ich würde sogar einen Wrapper case class Key(str: String) für die Schlüsselklasse verwenden)

    
Peter Schmitz 28.10.2011, 07:01
quelle
12

Verwende ein Tuple :

%Vor%     
Jean-Philippe Pellet 28.10.2011 05:50
quelle

Tags und Links