@@ -41,6 +41,32 @@ func init() {
4141 return NewIterator (o ), nil
4242 }, 0 , "items() -> list of D's (key, value) pairs, as 2-tuples" )
4343
44+ StringDictType .Dict ["keys" ] = MustNewMethod ("keys" , func (self Object , args Tuple ) (Object , error ) {
45+ err := UnpackTuple (args , nil , "keys" , 0 , 0 )
46+ if err != nil {
47+ return nil , err
48+ }
49+ sMap := self .(StringDict )
50+ o := make ([]Object , 0 , len (sMap ))
51+ for k := range sMap {
52+ o = append (o , String (k ))
53+ }
54+ return NewIterator (o ), nil
55+ }, 0 , "keys() -> list of D's keys, as a list" )
56+
57+ StringDictType .Dict ["values" ] = MustNewMethod ("values" , func (self Object , args Tuple ) (Object , error ) {
58+ err := UnpackTuple (args , nil , "values" , 0 , 0 )
59+ if err != nil {
60+ return nil , err
61+ }
62+ sMap := self .(StringDict )
63+ o := make ([]Object , 0 , len (sMap ))
64+ for _ , v := range sMap {
65+ o = append (o , v )
66+ }
67+ return NewIterator (o ), nil
68+ }, 0 , "values() -> list of D's values, as a list" )
69+
4470 StringDictType .Dict ["get" ] = MustNewMethod ("get" , func (self Object , args Tuple ) (Object , error ) {
4571 var length = len (args )
4672 switch {
0 commit comments