本文整理汇总了Golang中github.com/goadesign/goa/design.DataType.IsPrimitive方法的典型用法代码示例。如果您正苦于以下问题:Golang DataType.IsPrimitive方法的具体用法?Golang DataType.IsPrimitive怎么用?Golang DataType.IsPrimitive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/goadesign/goa/design.DataType
的用法示例。
在下文中一共展示了DataType.IsPrimitive方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: printVal
// printVal prints the given value corresponding to the given data type.
// The value is already checked for the compatibility with the data type.
func printVal(t design.DataType, val interface{}) string {
switch {
case t.IsPrimitive():
// For primitive types, simply print the value
s := fmt.Sprintf("%#v", val)
if t == design.DateTime {
s = fmt.Sprintf("time.Parse(time.RFC3339, %s)", s)
}
return s
case t.IsHash():
// The input is a hash
h := t.ToHash()
hval := val.(map[interface{}]interface{})
if len(hval) == 0 {
return fmt.Sprintf("%s{}", GoTypeName(t, nil, 0, false))
}
var buffer bytes.Buffer
buffer.WriteString(fmt.Sprintf("%s{", GoTypeName(t, nil, 0, false)))
for k, v := range hval {
buffer.WriteString(fmt.Sprintf("%s: %s, ", printVal(h.KeyType.Type, k), printVal(h.ElemType.Type, v)))
}
buffer.Truncate(buffer.Len() - 2) // remove ", "
buffer.WriteString("}")
return buffer.String()
case t.IsArray():
// Input is an array
a := t.ToArray()
aval := val.([]interface{})
if len(aval) == 0 {
return fmt.Sprintf("%s{}", GoTypeName(t, nil, 0, false))
}
var buffer bytes.Buffer
buffer.WriteString(fmt.Sprintf("%s{", GoTypeName(t, nil, 0, false)))
for _, e := range aval {
buffer.WriteString(fmt.Sprintf("%s, ", printVal(a.ElemType.Type, e)))
}
buffer.Truncate(buffer.Len() - 2) // remove ", "
buffer.WriteString("}")
return buffer.String()
default:
// shouldn't happen as the value's compatibility is already checked.
panic("unknown type")
}
}