英文:
Pass variable to struct function
问题
你可以通过在Multiply函数的参数列表中添加一个参数来传递number2
。修改后的代码如下:
type MultiplyStruct struct {
Number1 int
}
func (m MultiplyStruct) Multiply(number2 int) int {
return m.Number1 * number2
}
然后,你可以像下面这样调用Multiply函数:
var multiplier = MultiplyStruct{Number1: 10}
result := multiplier.Multiply(20)
这样,number2
的值将作为参数传递给Multiply函数,并返回结果。在调用Multiply函数时,你需要使用实例变量multiplier
来调用该函数。
英文:
type MultiplyStruct struct {
Number1 int
}
func (m MultiplyStruct) Multiply() int {
return m.Number1 * number2
}
how can I pass number2
to the Multiply function? Would it be like this?
var multiplier = MultiplyStruct(10)
multiplier.Multiply(20)
答案1
得分: 1
我认为这是你想要的:
package main
import (
"fmt"
)
type MultiplyStruct struct {
Number1 int
}
func (m MultiplyStruct) Multiply(number2 int) int {
return m.Number1 * number2
}
func main() {
multipler := MultiplyStruct{Number1: 10}
val := multipler.Multiply(20)
fmt.Println(val)
}
英文:
I think this is what you want:
package main
import (
"fmt"
)
type MultiplyStruct struct {
Number1 int
}
func (m MultiplyStruct) Multiply(number2 int) int {
return m.Number1 * number2
}
func main() {
multipler := MultiplyStruct{Number1: 10}
val := multipler.Multiply(20)
fmt.Println(val)
}
答案2
得分: 1
只是一个有趣的补充正确答案的方法。你可以创建一个柯里化函数,而不使用结构体来仅存储一个整数:
func Multiply(number1 int) (func(int) int) {
return func(number2 int) int {
return number1 * number2
}
}
func main() {
timesTen := Multiply(10)
fmt.Println(timesTen(20)) // => 200
timesTwo := Multiply(2)
fmt.Println(timesTwo(10)) // => 20
fmt.Println(Multiply(2)(3)) // => 6
}
英文:
Just an interesting addition to the correct answer. You can create a curried function without using a struct to store only an integer:
func Multiply(number1 int) (func(int) int) {
return func(number2 int) int {
return number1 * number2
}
}
func main() {
timesTen := Multiply(10)
fmt.Println(timesTen(20)) // => 200
timesTwo := Multiply(2)
fmt.Println(timesTwo(10)) // => 20
fmt.Println(Multiply(2)(3)) // => 6
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论