Go语言的编程范式

更新时间:2023-06-16 06:39:24 阅读: 评论:0

Go语⾔的编程范式由于⽐较古怪的语⾔特性,感觉代码的封装性是⼀种不同的思路。
包管理的⽕热程度居然没有nodejs⾼,这是为什么
package form
import (
"encoding/gob"
"reflect"
"regexp"
"time"
)
type FormData struct {
Errors  map[string]error  `json:"-" xml:"-" form:"-"`
Warning map[string]string `json"-" xml:"-" form: "-"`
Checked bool              `json"-" xml:"-" form: "-"`
}
// U that as an amonynous field for creating form.
type Form struct {
Data *FormData
}
// Get Error
成人高考真题func (f *Form) Err(name string) error {
if f.Data == nil {
return nil
}
if f.Data.Errors == nil {
return nil
}
return f.Data.Errors[name]
}
// Set Error
func (f *Form) SetErr(name string, err error) {
if f.Data == nil {
f.Data = &FormData{}
}
if f.Data.Errors == nil {
f.Data.Errors = map[string]error{}
}
f.Data.Errors[name] = err
}
// Has at least one Error
func (f *Form) HasErr() bool {
if f.Data == nil {
return fal
人一辈子}
return f.Data.Errors != nil
}
// Returns Error Format.
func (f *Form) ErrFormat() string {
return `<p>%v</p>`
}
// Get Warning
func (f *Form) GetWarning(name string) string { if f.Data == nil {
return""
}
if f.Data.Warning == nil {
return""
雨成语
}
return f.Data.Warning[name]
}
// Set Warning
func (f *Form) SetWarning(name, warning string) { if f.Data == nil {
f.Data = &FormData{}
}
if f.Data.Warning == nil {
f.Data.Warning = map[string]string{}
}
f.Data.Warning[name] = warning
}
// Returns Warning Format
func (f *Form) WarningFormat() string {
return `<p>%v</p>`
}
// Return Group Format
func (f *Form) Group() string {
return `%v`
}
// Return Group Format Success
func (f *Form) GroupSuccess() string {
return `%v`
}
// Return Group Error Format
商品分析func (f *Form) GroupError() string {
return `%v`
}
// Return Group Warning Format
func (f *Form) GroupWarning() string {
return `%v`
}
// Wrap around Form Input
func (f *Form) Wrap() string {
return `%v`
}
// Been Checked
func (f *Form) BeenChecked() bool {
if f.Data == nil {
return fal
}
return f.Data.Checked
}
// Mark as Checked
func (f *Form) Check() {
if f.Data == nil {
f.Data = &FormData{}
f.Data.Checked = true
叶绿体结构}
// Form Interface
type FormInterface interface {
Err(string) error
遗忘天使SetErr(string, error)
HasErr() bool
ErrFormat() string
GetWarning(string) string
SetWarning(string, string)
WarningFormat() string
Group() string
GroupSuccess() string
GroupError() string
GroupWarning() string
Wrap() string
BeenChecked() bool
Check()
}
/
/ A String that implement the error interface type FormError string
体能游戏func (f FormError) Error() string {
return string(f)
}
func init() {
gob.Register(&Form{})
gob.Register(FormError(""))
gob.Register(&FormData{})
}
type form struct {
m                        reflect.Value
t                        reflect.Type
v                        reflect.Value
field                    reflect.StructField
value                    reflect.Value
name, preferedName, ftype string
}
func (f form) get(suffix string) interface{} {
m := f.m.MethodByName(f.name + suffix)
if !m.IsValid() {
return nil
幼儿园主持稿}
in := make([]reflect.Value, 0)
values := m.Call(in)
if len(values) == 0 {
return nil
}
return values[0].Interface()
}
func (f form) getStr(suffix string) (string, bool) {    str, ok := f.get(suffix).(string)
return str, ok
}
func (f form) getStrs(suffix string) ([]string, bool) {    strs, ok := f.get(suffix).([]string)
return strs, ok
func (f form) getStrMap(suffix string) (map[string]string, bool) {    mstr, ok := f.get(suffix).(map[string]string)
return mstr, ok
}
func (f form) getInt(suffix string) (int64, bool) {
num, ok := f.get(suffix).(int64)
return num, ok
}
func (f form) getFloat(suffix string) (float64, bool) {
num, ok := f.get(suffix).(float64)
return num, ok
}
func (f form) getBool(suffix string) (bool, bool) {
b, ok := f.get(suffix).(bool)
return b, ok
}
func (f form) getRegExp(suffix string) (*regexp.Regexp, bool) {    re, ok := f.get(suffix).(*regexp.Regexp)
return re, ok
}
func (f form) getTime(suffix string) (time.Time, bool) {
_time, ok := f.get(suffix).(time.Time)
return _time, ok
}

本文发布于:2023-06-16 06:39:24,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1040726.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程度   感觉   代码   范式   真题
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图