我正在寻找类似于此的整数转换函数:
func narrow(x int64) (int32, error) { ... }
在此示例中,如果((int32)(x), nil)
适合x
,则函数将返回int32
,如果不(nil, someError)
,则返回@Html.DropDownList("SelectedRole", ViewBag.RolesEdit as List<SelectListItem>, ViewBag.CurrentUserRole as string, new { @class = "form-control" })
。
这种语言似乎内置了很多conversions,但它们都默默地吞噬溢出,而不是提供一个确定的错误。我错过了什么吗?
答案 0 :(得分:5)
转化不会报告溢出。
这是一个处理正数和负数的函数:
func narrow(x int64) (int32, error) {
y := int32(x)
if int64(y) != x {
return 0, errors.New("overflow")
}
return y, nil
}