restructure project
This commit is contained in:
41
internal/object/int.go
Normal file
41
internal/object/int.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package object
|
||||
|
||||
import "fmt"
|
||||
|
||||
type Integer struct {
|
||||
Value int64
|
||||
}
|
||||
|
||||
func (i *Integer) Bool() bool {
|
||||
return i.Value != 0
|
||||
}
|
||||
|
||||
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) Compare(other Object) int {
|
||||
if obj, ok := other.(*Integer); ok {
|
||||
switch {
|
||||
case i.Value < obj.Value:
|
||||
return -1
|
||||
case i.Value > obj.Value:
|
||||
return 1
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
}
|
||||
return -1
|
||||
}
|
||||
Reference in New Issue
Block a user