#author("2018-09-26T10:29:08+09:00","default:yakumo_murakami","yakumo_murakami")
[[golang]]
ハローワールドとか今さらなので、合算をしてみましょう。
まず、Rubyで書くなら以下にあたるコードを考えてみましょう。
* Rubyで書いた例 [#q42c0862]
すごく手抜きだけど、こんなコードを考えましょう。
class Array
def gassan
r = 0
(self[0]..self[1]).each{|i|
r += i
}
r
end
end
p [1,10].gassan
これをGOで置き換えてみます。
* GOで書くと、こんな感じかな。 [#je3ffc03]
配列オブジェクトを使うような手抜きは後で考えるとして、まぁ始点と終点をどう渡すか、あとは戻り値の形式を指示しますか。
func gassan(a int,b int)(int){
i := a
n := 0
for i <= b {
n += i
i += 1
}
return n
}
うん。
あとはこれを、以下で呼べばいいかな。
func main() {
fmt.Println("Gassan: ",gassan(1,10))
}
実行すると、どちらも 5050 を答えとして返すでしょう。
* (おまけ)Perlでも書いてみた。 [#ge6d4a7a]
こんな感じかな。今となっては懐かしいですね XD
sub gassan{
($a,$b) = @_;
$r = 0;
for (my $i = $a ; $i <= $b ; $i++){
$r = $r + $i
}
$r;
}
print &gassan(1,10)."\n";