go - 如何将函数应用于 Golang 中的整数输入

标签 go

例如,如果输入是这个

1 3 4 5

全部由空格分隔,我想应用对每个数字进行平方然后相加的功能。

我只是不知道如何将函数应用于每个数字。我所能想到的是,我必须将数字放入一个 slice 中,然后将该函数应用于每个数字。我到处都看过,但找不到如何执行此操作。

在 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 成为对每个数字执行函数的新列表。

最佳答案

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

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

关于go - 如何将函数应用于 Golang 中的整数输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56397402/

相关文章:

sql - 如何使用Golang直接从文件执行mssql脚本

go - ResposeWriter/Write 的错误处理

windows - 找不到包 "gopkg.in/validator.v2"错误

go - 我如何在 Go 中以相同的方式对来自多个 channel 的输入使用react?

firebase - 使用 Go 为 Remote Config REST API 验证服务帐户

Golang Sprintf格式化字符串并多次使用

email - go 中的多部分电子邮件

go - 如何在 X 小时后有效地调用函数?

multithreading - 在 go 例程中更新后未返回更新值

docker - 在不调用 go build 的情况下为 golang 应用程序构建 docker 容器