请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。

    1. func myAtoi(str string) int {
    2. //去掉收尾空格
    3. str = strings.TrimSpace(str)
    4. result := 0
    5. sign := 1
    6. for i, v := range str {
    7. if v >= '0' && v <= '9' {
    8. result = result*10 + int(v-'0')
    9. } else if v == '-' && i == 0 {
    10. sign = -1
    11. } else if v == '+' && i == 0 {
    12. sign = 1
    13. } else {
    14. break
    15. }
    16. // 数值最大检测
    17. if result > math.MaxInt32 {
    18. if sign == -1 {
    19. return math.MinInt32
    20. }
    21. return math.MaxInt32
    22. }
    23. }
    24. return sign * result
    25. }