當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Packer.UnpackString方法代碼示例

本文整理匯總了Golang中github.com/paulfchristiano/dwimmer/term/intern.Packer.UnpackString方法的典型用法代碼示例。如果您正苦於以下問題:Golang Packer.UnpackString方法的具體用法?Golang Packer.UnpackString怎麽用?Golang Packer.UnpackString使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/paulfchristiano/dwimmer/term/intern.Packer的用法示例。


在下文中一共展示了Packer.UnpackString方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: unpickleT

func unpickleT(packer intern.Packer, kind int, packed intern.Packed) (T, bool) {
	switch kind {
	case chanT:
		unpickled, ok := packer.UnpackPickler(packed, &SettingT{})
		if !ok {
			return nil, false
		}
		setting, ok := unpickled.(*SettingT)
		return MakeChannel(setting), ok
	case intT:
		result, ok := packer.UnpackInt(packed)
		if !ok {
			//panic(fmt.Errorf("failed to unpickle int from %v", packed))
		}
		return Int(result), ok
	case strT:
		result, ok := packer.UnpackString(packed)
		return Str(result), ok
	case quotedT:
		unpickled, ok := packer.UnpackPickler(packed, &CompoundT{})
		if !ok {
			return nil, false
		}
		return Quote(unpickled.(T)), true
	case wrapperT:
		return Make("a term that stands in for a wrapped go object that could not be pickled").T(), true
	case compoundT:
		result := &CompoundT{}
		if packed, args, ok := packer.UnpackPair(packed); ok {
			if args, ok := packer.UnpackList(args); ok {
				result.args = make([]T, len(args))
				for i, arg := range args {
					unpacked, ok := packer.UnpackPickler(arg, &CompoundT{})
					if !ok {
						return nil, false
					}
					result.args[i] = unpacked.(T)
				}
				id, ok := unpickleTemplateID(packer, packed)
				if !ok {
					return nil, false
				}
				result.TemplateID = id
				return result, true
			}
		}
	}
	return nil, false
}
開發者ID:paulfchristiano,項目名稱:dwimmer,代碼行數:49,代碼來源:pickle.go

示例2: Unpickle

func (t *Template) Unpickle(packer intern.Packer, pickled intern.Packed) (intern.Pickler, bool) {
	result := &Template{}
	if v, parts, ok := packer.UnpackPair(pickled); ok {
		if v, ok := packer.UnpackInt(v); ok && v == v1Template {
			if parts, ok := packer.UnpackList(parts); ok {
				result.Parts = make([]string, len(parts))
				for i, part := range parts {
					if part, ok := packer.UnpackString(part); ok {
						result.Parts[i] = part
					}
				}
				return result, true
			}
		}
	}
	return nil, false
}
開發者ID:paulfchristiano,項目名稱:dwimmer,代碼行數:17,代碼來源:pickle.go


注:本文中的github.com/paulfchristiano/dwimmer/term/intern.Packer.UnpackString方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。