package Objectsimport ("fmt""hash/fnv")/**** @author Liu Weiyi* @date 2020年4月25日 3:09 下午*/type PyStringObject struct {PyObject_HEADlength inthashValue int32value string}type PyStringType tagPyTypeObjectvar PyString_Type = PyStringType{name: "string",PyObject_HEAD: PyObject_HEAD_INIT((*tagPyTypeObject)(&PyType_Type)),PyTypeFunc: &PyStringType{},}func PyStr_Create(value string) PyObject {obj := PyStringObject{}obj.refCount = 1obj.TagPyTypeObject = (*tagPyTypeObject)(&PyString_Type)obj.value = valueobj.length = len(value)obj.hashValue = -1return &obj}func (stringType PyStringType) PrintFun(obj PyObject) {fmt.Println(obj.(*PyStringObject).value)}func (stringType PyStringType) HashFun(obj PyObject) int32 {strObj := obj.(*PyStringObject)if int(strObj.hashValue) != -1 {return strObj.hashValue}h := fnv.New32a()h.Write([]byte(strObj.value))return int32(h.Sum32())}func (stringType PyStringType) AddFun(left, right PyObject) PyObject {result := PyStr_Create(left.(*PyStringObject).value + right.(*PyStringObject).value)return result}func (obj PyStringType) GetType() *tagPyTypeObject {return obj.TagPyTypeObject}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。