| @ -0,0 +1,31 @@ | |||||
| package gython | |||||
| import "fmt" | |||||
| type Dict struct { | |||||
| values map[Object]Object | |||||
| } | |||||
| func NewDict() *Dict { | |||||
| return &Dict{ | |||||
| values: make(map[Object]Object, 0), | |||||
| } | |||||
| } | |||||
| func (dict *Dict) object() {} | |||||
| func (dict *Dict) Length() *Float { | |||||
| return NewFloat(float64(len(dict.values))) | |||||
| } | |||||
| func (dict *Dict) GetItem(key Object) (Object, error) { | |||||
| value, exists := dict.values[key] | |||||
| if exists == false { | |||||
| return nil, fmt.Errorf("Key error: %#v", key) | |||||
| } | |||||
| return value, nil | |||||
| } | |||||
| func (dict *Dict) SetItem(key Object, value Object) { | |||||
| dict.values[key] = value | |||||
| } | |||||
| @ -0,0 +1,7 @@ | |||||
| package gython | |||||
| type _None struct{} | |||||
| func (none *_None) object() {} | |||||
| var None *_None = &_None{} | |||||
| @ -1,10 +1,17 @@ | |||||
| package gython | package gython | ||||
| type Tuple struct { | type Tuple struct { | ||||
| length *Float | |||||
| values []Object | |||||
| } | } | ||||
| func (tuple *Tuple) object() {} | |||||
| func NewTuple() *Tuple { | |||||
| return &Tuple{} | |||||
| func NewTuple(values ...Object) *Tuple { | |||||
| return &Tuple{ | |||||
| length: NewFloat(float64(len(values))), | |||||
| values: values, | |||||
| } | |||||
| } | } | ||||
| func (tuple *Tuple) object() {} | |||||
| func (tuple *Tuple) Length() *Float { return tuple.length } | |||||
| func (tuple *Tuple) Values() []Object { return tuple.values } | |||||