27 lines
451 B
Go
27 lines
451 B
Go
package object
|
|
|
|
import "fmt"
|
|
|
|
type String struct {
|
|
Value string
|
|
}
|
|
|
|
func (s *String) Type() ObjectType {
|
|
return STRING_OBJ
|
|
}
|
|
func (s *String) Inspect() string {
|
|
return fmt.Sprintf("%#v", s.Value)
|
|
}
|
|
func (s *String) Clone() Object {
|
|
return &String{Value: s.Value}
|
|
}
|
|
func (s *String) String() string {
|
|
return s.Value
|
|
}
|
|
func (s *String) Equal(other Object) bool {
|
|
if obj, ok := other.(*String); ok {
|
|
return s.Value == obj.Value
|
|
}
|
|
return false
|
|
}
|