package hotime

import (
	"errors"
)

type Slice []interface{}

//获取string
func (this Slice) GetString(key int, err ...*Error) string {
	if len(err) != 0 {
		err[0].SetError(nil)
	}
	return ObjToStr((this)[key])
}

//获取Int
func (this Slice) GetInt(key int, err ...*Error) int {
	v := ObjToInt((this)[key], err...)
	return v
}

//获取Int
func (this Slice) GetInt64(key int, err ...*Error) int64 {
	v := ObjToInt64((this)[key], err...)

	return v
}

//获取向上取整Int64
func (this Slice) GetCeilInt64(key int, err ...*Error) int64 {
	v := ObjToCeilInt64((this)[key], err...)
	return v

}

//获取向上取整Int
func (this Slice) GetCeilInt(key int, err ...*Error) int {
	v := ObjToCeilInt((this)[key], err...)
	return v

}

//获取向上取整float64
func (this Slice) GetCeilFloat64(key int, err ...*Error) float64 {
	v := ObjToCeilFloat64((this)[key], err...)
	return v

}

//获取Float64
func (this Slice) GetFloat64(key int, err ...*Error) float64 {
	v := ObjToFloat64((this)[key], err...)

	return v
}

func (this Slice) GetSlice(key int, err ...*Error) Slice {
	v := ObjToSlice((this)[key], err...)
	return v
}

func (this Slice) GetMap(key int, err ...*Error) Map {
	//var v Map
	v := ObjToMap((this)[key], err...)
	return v
}

func (this Slice) Get(key int, err ...*Error) interface{} {

	if key < len(this) {
		return this[key]
	}
	e := errors.New("没有存储key及对应的数据")
	if len(err) != 0 {
		err[0].SetError(e)
	}
	return nil
}

func (this Slice) Put(key int, value interface{}) {
	this[key] = value
}

func (this Slice) ToJsonString() string {
	return ObjToStr(this)
}
