本文整理汇总了Golang中github.com/flosch/pongo2.Value.IsNil方法的典型用法代码示例。如果您正苦于以下问题:Golang Value.IsNil方法的具体用法?Golang Value.IsNil怎么用?Golang Value.IsNil使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/flosch/pongo2.Value
的用法示例。
在下文中一共展示了Value.IsNil方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: filterBool
func filterBool(in *pongo2.Value, param *pongo2.Value) (*pongo2.Value, *pongo2.Error) {
if in.IsNil() {
return pongo2.AsValue(false), nil
}
switch t := in.Interface().(type) {
case string:
if t == "" {
return pongo2.AsValue(false), nil
}
v, err := strconv.ParseBool(t)
if err != nil {
return nil, &pongo2.Error{
Sender: "filter:bool",
ErrorMsg: "Filter input value invalid.",
}
}
return pongo2.AsValue(v), nil
case bool:
return pongo2.AsValue(t), nil
}
return nil, &pongo2.Error{
Sender: "filter:bool",
ErrorMsg: "Filter input value must be of type 'bool' or 'string'.",
}
}
示例2: filterTimeuntilTimesince
func filterTimeuntilTimesince(in *pongo2.Value, param *pongo2.Value) (*pongo2.Value, *pongo2.Error) {
basetime, is_time := in.Interface().(time.Time)
if !is_time {
return nil, &pongo2.Error{
Sender: "filter:timeuntil/timesince",
ErrorMsg: "time-value is not a time.Time-instance.",
}
}
var paramtime time.Time
if !param.IsNil() {
paramtime, is_time = param.Interface().(time.Time)
if !is_time {
return nil, &pongo2.Error{
Sender: "filter:timeuntil/timesince",
ErrorMsg: "time-parameter is not a time.Time-instance.",
}
}
} else {
paramtime = time.Now()
}
return pongo2.AsValue(humanize.TimeDuration(basetime.Sub(paramtime))), nil
}
示例3: filterNaturalday
func filterNaturalday(in *pongo2.Value, param *pongo2.Value) (*pongo2.Value, *pongo2.Error) {
basetime, is_time := in.Interface().(time.Time)
if !is_time {
return nil, &pongo2.Error{
Sender: "filter:naturalday",
ErrorMsg: "naturalday-value is not a time.Time-instance.",
}
}
var reference_time time.Time
if !param.IsNil() {
reference_time, is_time = param.Interface().(time.Time)
if !is_time {
return nil, &pongo2.Error{
Sender: "filter:naturalday",
ErrorMsg: "naturalday-parameter is not a time.Time-instance.",
}
}
} else {
reference_time = time.Now()
}
d := reference_time.Sub(basetime) / time.Hour
switch {
case d >= 0 && d < 24:
// Today
return pongo2.AsValue("today"), nil
case d >= 24:
return pongo2.AsValue("yesterday"), nil
case d < 0 && d >= -24:
return pongo2.AsValue("tomorrow"), nil
}
// Default behaviour
return pongo2.ApplyFilter("naturaltime", in, param)
}