如何在Golang中将函数应用于整数输入

时间:2019-05-31 14:56:05

标签: go

例如,如果输入是这个

1 3 4 5

全部用空格隔开,我想应用平方单个数字然后将其相加的功能。

我只是不知道如何将功能应用于每个数字。我所能想到的是,我必须将数字切成薄片然后将函数应用于每个数字。我到处都看了,找不到解决方法。

在Python中,我就是这样做的,我已经将这些值放入了一个名为“ n”的列表中。

#The list is pasted from the initial puzzle
n=[10, 10, 9, 8, 10, 10, 10]

# The list is first squared
b = (list(map(lambda x:x**2,n)))

b成为新列表,其中每个数字都完成了功能。

2 个答案:

答案 0 :(得分:0)

如果您的整数实际上是一个由空格分隔的字符串,则可以这样做。

package main

import "fmt"
import "strings"
import "strconv"

func main() {
    numbers := "1 3 4 5"
    var n []int
    for _, v := range strings.Fields(numbers) {
        i, err := strconv.Atoi(v)
        if err != nil {
            fmt.Println(err.Error())
            break
        }
        n = append(n, i*i)
    }
    fmt.Println(n)
}

https://play.golang.org/p/JcivNd29Gzg

答案 1 :(得分:0)

package main

import (
 "strconv"
 "fmt"
 "strings"
)

func main() {
stringwithnumbers := "1 2 3 4 5"
numberarray := strings.Split(stringwithnumbers, " ")

stringwithnumbers = ""

for _, number := range numberarray {
    numbernew,err := strconv.Atoi(number)
    if err != nil{
    return
    }

    numbernew = numbernew * 2
    stringwithnumbers += strconv.Itoa(numbernew)
    stringwithnumbers += " "
}

stringwithnumbers = strings.Trim(stringwithnumbers, " ")

//You can check the result...
fmt.Print(stringwithnumbers)
}

您可以在此处检查代码和所做的更改: https://play.golang.org/