2017-03-06 175 views
-1
type MultiplyStruct struct { 
    Number1 int 
} 

func (m MultiplyStruct) Multiply() int { 
    return m.Number1 * number2 
} 

如何将number2传递给乘法函数?会是这样吗?将变量传递给结构函数

var multiplier = MultiplyStruct(10) 
    multiplier.Multiply(20) 

回答

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) 
} 

On Go Playground

+0

那就是它!谢谢 – lol

1

只是一个有趣的除了正确的答案。您可以创建一个curried函数,而不使用结构来存储整数:

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 
}