consider following variables in scala :
val nestedcollection_1 = array( "key_1" -> map("key_11" -> "value_11"), "key_2" -> map("key_22" -> "value_22")) val nestedcollection_2 = map( "key_3"-> ["key_33","value_33"], "key_4"-> ["key_44"->"value_44"]) following questions :
1) want read values of variables nestedcollection_1, nestedcollection_2 , ensure value of variables of format
array[map[string, map[string, string]] and
map[string, array[string]]] 2) possible detailed type of variable in scala? i.e. nestedcolelction_1.some_method should return array[map[string, map[string, string]] type of values
i not sure exacltly mean. compiler can ensure type of variable if annotate type:
val nestedcollection_2: map[string, list[string]] = map( "key_3"-> list("key_33", "value_33"), "key_4"-> list("key_44", "value_44")) you can see type of variable in scala repl when define it, or using alt + = in intellij idea.
scala> val nestedcollection_2 = map( | "key_3"-> list("key_33", "value_33"), | "key_4"-> list("key_44", "value_44")) nestedcollection_2: scala.collection.immutable.map[string,list[string]] = map(key_3 -> list(key_33, value_33), key_4 -> list(key_44, value_44)) edit
i think question now. here how can type string:
import scala.reflect.runtime.universe._ def typeasstring[a: typetag](elem: a) = { typeof[a].tostring } test:
scala> typeasstring(nestedcollection_2) res0: string = map[string,scala.list[string]] scala> typeasstring(nestedcollection_1) res1: string = scala.array[(string, scala.collection.immutable.map[string,string])]
Comments
Post a Comment