如何在Golang中将[]字符串转换为[] float64?

Nic*_*ick 5 go

我是编程的新手,并试图在Go中编写一个简单的平均程序.

package main

import (
    "fmt"
    "os"
)

var numbers []float64
var sum float64 = 0

func main() {

    if len(os.Args) > 1 {

        numbers = os.Args[1:]

    }

    fmt.Println("Numbers are: ", numbers)
    for _, value := range numbers {
        sum += value
    }

}
Run Code Online (Sandbox Code Playgroud)

http://play.golang.org/p/TWNltPO71N

当我构建程序时,我收到了这个错误:

prog.go:15: cannot use os.Args[1:] (type []string) as type []float64 in assignment
[process exited with non-zero status]
Run Code Online (Sandbox Code Playgroud)

那么如何将一片字符串转换为一个浮点数?我可以将转换函数映射到切片吗?

tum*_*dum 8

您需要使用strconv.ParseFloat函数将字符串转换为float64 :

package main

import (
    "fmt"
    "os"
    "strconv"
)

var numbers []float64
var sum float64 = 0

func main() {

    if len(os.Args) <= 1 {
        return
    }

    for _, arg := range os.Args[1:] {
        if n, err := strconv.ParseFloat(arg, 64); err == nil {
            numbers = append(numbers, n)
        }
    }

    fmt.Println("Numbers are: ", numbers)
    for _, value := range numbers {
        sum += value
    }

}
Run Code Online (Sandbox Code Playgroud)