simpler vm
This commit is contained in:
@@ -14,8 +14,14 @@ func Len(args ...object.Object) object.Object {
|
||||
return newError(err.Error())
|
||||
}
|
||||
|
||||
if size, ok := args[0].(object.Sizeable); ok {
|
||||
return object.Integer{Value: int64(size.Len())}
|
||||
switch obj := args[0].(type) {
|
||||
case object.String:
|
||||
return object.Integer{Value: int64(obj.Len())}
|
||||
case *object.Array:
|
||||
return object.Integer{Value: int64(obj.Len())}
|
||||
case *object.Hash:
|
||||
return object.Integer{Value: int64(obj.Len())}
|
||||
default:
|
||||
return newError("TypeError: object of type '%s' has no len()", args[0].Type())
|
||||
}
|
||||
return newError("TypeError: object of type '%s' has no len()", args[0].Type())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user