Follow the approach used in strconv's readFloat, decimal.set, and Atoi,
where leading '+' and '-' are handled using a switch for clarity and
consistency.
Change-Id: I41eff34ce90b5ac43fcdbc0bb88910d6d5fb4d39
GitHub-Last-Rev:
0c9d2efb5a828515fa00afdba8c436aa31fb0e53
GitHub-Pull-Request: golang/go#73185
Reviewed-on: https://go-review.googlesource.com/c/go/+/663257
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
if i >= len(s) {
return
}
- switch {
- case s[i] == '+':
+ switch s[i] {
+ case '+':
i++
- case s[i] == '-':
- b.neg = true
+ case '-':
i++
+ b.neg = true
}
// digits
return
}
esign := 1
- if s[i] == '+' {
+ switch s[i] {
+ case '+':
i++
- } else if s[i] == '-' {
+ case '-':
i++
esign = -1
}
if i >= len(s) {
return
}
- switch {
- case s[i] == '+':
+ switch s[i] {
+ case '+':
i++
- case s[i] == '-':
- neg = true
+ case '-':
i++
+ neg = true
}
// digits
return
}
esign := 1
- if s[i] == '+' {
+ switch s[i] {
+ case '+':
i++
- } else if s[i] == '-' {
+ case '-':
i++
esign = -1
}
// Pick off leading sign.
s0 := s
neg := false
- if s[0] == '+' {
+ switch s[0] {
+ case '+':
s = s[1:]
- } else if s[0] == '-' {
- neg = true
+ case '-':
s = s[1:]
+ neg = true
}
// Convert unsigned and check range.