From 78d2282ccd2aa3a5fb404db81383cd38b2dc28b0 Mon Sep 17 00:00:00 2001 From: cloud Date: Wed, 3 Jun 2026 19:43:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1=EF=BC=9AtagValue=20only=20needs=20to=20be?= =?UTF-8?q?=20assigned=20once,=20which=20removes=20an=20unnecessary=20step?= =?UTF-8?q?.=20Removed=20a=20potentially=20unnecessary=20temporary=20varia?= =?UTF-8?q?ble.=20(I'm=20not=20sure=20if=20it's=20a=20personal=20preferenc?= =?UTF-8?q?e,=20because=20this=20issue=20is=20completely=20negligible.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2:This reduces a redundant check. When tagValue is empty, we can first check whether field.Name is empty before assigning it.With this approach, the comment in the second block can also be removed. 3:The second invocation of k, v := head(opt, "=") in the original code appears to be unnecessary and can be removed. --- binding/form_mapping.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/binding/form_mapping.go b/binding/form_mapping.go index 6982fd4f..9af5c0e4 100644 --- a/binding/form_mapping.go +++ b/binding/form_mapping.go @@ -143,24 +143,23 @@ type setOptions struct { } func tryToSetValue(value reflect.Value, field reflect.StructField, setter setter, tag string) (bool, error) { - var tagValue string var setOpt setOptions - tagValue = field.Tag.Get(tag) - tagValue, opts := head(tagValue, ",") + tagValue, opts := head(field.Tag.Get(tag), ",") if tagValue == "" { // default value is FieldName + if field.Name == "" { + return false, nil + } tagValue = field.Name } - if tagValue == "" { // when field is "emptyField" variable - return false, nil - } var opt string for len(opts) > 0 { opt, opts = head(opts, ",") - if k, v := head(opt, "="); k == "default" { + k, v := head(opt, "=") + if k == "default" { setOpt.isDefaultExists = true setOpt.defaultValue = v @@ -171,7 +170,7 @@ func tryToSetValue(value reflect.Value, field reflect.StructField, setter setter setOpt.defaultValue = strings.ReplaceAll(v, ";", ",") } } - } else if k, v = head(opt, "="); k == "parser" { + } else if k == "parser" { setOpt.parser = v } } From ffc608216ae1962fff0132286d40fb9cec0c2646 Mon Sep 17 00:00:00 2001 From: REDDDG Date: Wed, 3 Jun 2026 19:58:07 +0800 Subject: [PATCH 2/2] Refactor option handling with switch statement --- binding/form_mapping.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/binding/form_mapping.go b/binding/form_mapping.go index 9af5c0e4..c4e692ed 100644 --- a/binding/form_mapping.go +++ b/binding/form_mapping.go @@ -159,7 +159,8 @@ func tryToSetValue(value reflect.Value, field reflect.StructField, setter setter opt, opts = head(opts, ",") k, v := head(opt, "=") - if k == "default" { + switch k { + case "default": setOpt.isDefaultExists = true setOpt.defaultValue = v @@ -170,7 +171,7 @@ func tryToSetValue(value reflect.Value, field reflect.StructField, setter setter setOpt.defaultValue = strings.ReplaceAll(v, ";", ",") } } - } else if k == "parser" { + case "parser": setOpt.parser = v } }