2017-03-06 17 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

thats it!ありがとう – lol

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 
} 
関連する問題