【发布时间】:2014-08-10 17:51:43
【问题描述】:
我想制作一个脚本,对用户提供的参数进行插入排序,如下所示:
$ insertionSort 1 2 110 39
我希望它会返回:
[1 2 39 110]
但它会返回:
[1 110 2 39]
我认为这是因为 os.Args 数组中的元素是字符串。所以,我的问题是如何将 os.Args 数组的元素转换为整数?这是我的代码:
package main
import (
"fmt"
"os"
"reflect"
"strconv"
)
func main() {
A := os.Args[1:]
for i := 0; i <= len(A); i++ {
strconv.Atoi(A[i])
fmt.Println(reflect.TypeOf(A[i]))
}
for j := 1; j < len(A); j++ {
key := A[j]
i := j - 1
for i >= 0 && A[i] > key {
A[i+1] = A[i]
i = i - 1
A[i+1] = key
}
}
fmt.Println(A)
}
提醒一下,当我替换时
strconv.Atoi(A[i])
对于
A[i] = strconv.Atoi(A[i])
我收到以下错误:
./insertionSort.go:14: multiple-value strconv.Atoi() in single-value context
感谢您的宝贵时间!
【问题讨论】:
标签: algorithm sorting go type-conversion command-line-arguments