2017-01-02 5 views
2

このプログラムは別の計算を行うことです。今は、mainで与えられた2つの数値の基本操作を行っています。2つ以上の数値を計算するようにアップグレードしようとしています。入力。これは電卓プログラムです。未知数の入力をコード化する方法は?

package main 

import (
    "fmt" 
) 

func add (n int , m int) int { 
    sum := n + m 
    return sum 
} 
func sub (n int , m int) int { 
    diff := n - m 
    return diff 
} 
func mul (n float32 , m float32) float32 { 
    pro := n * m 
    return pro 
} 

func div (n float32 , m float32) float32 { 
    quo := n/m 
    return quo 
} 

func main() { 
    fmt.Println(add(4,6)) 
    fmt.Println(sub(4,6)) 
    fmt.Println(mul(4,6)) 
    fmt.Println(div(6,4)) 
} 
+0

[Androidの簡単な電卓はどうすればよいですか?ボタンを使用してテキストを編集する方法は?](http://stackoverflow.com/questions/10280263/how-do-a-simple-calculator-in-android-how-to-do-it-using-buttons - と - 単一edi) –

+0

[電卓の問題 - Androidプログラミング]の可能な複製(0120)を参照してください。 –

+1

@SenjutiMahapatra @Akshayどのように問題ではない計算を書く。これは 'go'関数で任意の数の引数を受け入れる方法に関するものです。 –

答えて

2

あなたはarguementsのarbitery数を受け入れるように...を使用することができ、ここで はあなたのプログラムがものになるかどうかで、その後ここ

package main 

import (
    "fmt" 
) 

func add(m ...int) int { 
    sum := 0 
    for _, i := range m { 
     sum += i 
    } 
    return sum 
} 
func sub(m ...int) int { 
    sub := m[0] 
    for _, i := range m[1:] { 
     sub -= i 
    } 
    return sub 
} 
func mul(m ...float32) float32 { 
    c := float32(1) 
    for _, i := range m { 
     c *= i 
    } 
    return c 
} 
func div(m ...float32) float32 { 
    quo := m[0] 
    for _, i := range m[1:] { 
     quo /= i 
    } 
    return quo 
} 

func main() { 
    fmt.Println(add(4, 6)) 
    fmt.Println(sub(4, 6)) 
    fmt.Println(mul(4, 6)) 
    fmt.Println(div(6, 4)) 
} 

は、プレイのリンクを行くです:https://play.golang.org/p/dWrMa-GdGj

+0

'go run filename.go'コマンドはプログラムをコンパイルして実行しますが、コードをコンパイルするだけのコマンドを見つけることはできません。実行可能ファイル(.exe)。あなたはそれをする方法を知っていますか? @Sarathsp – codinggirl

+1

@codinggirlあなたが試みるかもしれない、 'go build filename.go' –

0

あなたの質問ではありませんあまりにも明確なので、私はいくつかの仮定をするつもりです。私はあなたが1 + 2 + 3を返すadd(1, 2, 3)を行うことができる何かをしたいと仮定しています。

スライスを使用するか、...T引数タイプを使用する2つの方法があります。 (Go specificationsを参照してください)。

スライスを使用する実装では、スライスを受け入れ、繰り返しメソッドを使用してそのスライスに対してアクションを実行します。例えば、追加機能のために:

func add(numbers []int) int { 
    sum := 0 
    for _, number := range numbers { 
     sum += number 
    } 
    return sum 
} 

その後、...T引数の型は基本的にそれとほぼ同じである使用して1 + 2 + 3

の結果を返しますどのadd([]int{1, 2, 3})ようにそれを呼び出すことができます複数の引数をスライスに変換します。

func add(numbers ...int) int { 
    sum := 0 
    for _, number := range numbers { 
     sum += number 
    } 
    return sum 
} 

とは異なります。 add(1, 2, 3)、またはスライスを使用したい場合はadd([]int{1, 2, 3}...)です。

これらの概念を他の操作に適用できるはずです。