33 lines
591 B
Go
33 lines
591 B
Go
package object
|
|
|
|
import "fmt"
|
|
|
|
type Integer struct {
|
|
Value int64
|
|
}
|
|
|
|
func (i *Integer) Type() ObjectType {
|
|
return INTEGER_OBJ
|
|
}
|
|
func (i *Integer) Inspect() string {
|
|
return fmt.Sprintf("%d", i.Value)
|
|
}
|
|
func (i *Integer) Clone() Object {
|
|
return &Integer{Value: i.Value}
|
|
}
|
|
func (i *Integer) String() string {
|
|
return i.Inspect()
|
|
}
|
|
func (i *Integer) Equal(other Object) bool {
|
|
if obj, ok := other.(*Integer); ok {
|
|
return i.Value == obj.Value
|
|
}
|
|
return false
|
|
}
|
|
func (i *Integer) Less(other Object) bool {
|
|
if obj, ok := other.(*Integer); ok {
|
|
return i.Value < obj.Value
|
|
}
|
|
return true
|
|
}
|