Golang-8:匿名関数
匿名関数
新しい関数は、関数内で定義され、変数として返されます.
この無名関数を「匿名関数」と呼ぶ.
二つの内容を合わせるpackage main
import "fmt"
type BaseNumType func(int) int
func makeAdd(base int) BaseNumType {
return func(num int) int { // 여기
return base + num
}
}
func makeMul(base int) BaseNumType {
return func(num int) int { // 여기
return base * num
}
}
func main() {
twoBaseAdd := makeAdd(2)
threeBaseAdd := makeAdd(3)
twoBaseMul := makeMul(3)
threeBaseMul := makeMul(3)
for i := 0; i < 3; i++ {
fmt.Println("add : ", twoBaseAdd(i), threeBaseAdd(i))
fmt.Println("mul : ", twoBaseMul(i), threeBaseMul(i))
}
}
mainで作成した4つの変数は関数のように実行されます.(事実上は関数)
他の言語でも匿名関数がよく使われています.
実はよく関数型に開発されているので、早く勉強したいです.
Console
Reference
この問題について(Golang-8:匿名関数), 我々は、より多くの情報をここで見つけました
https://velog.io/@phoenix/Go-lang-8-익명-함수
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
package main
import "fmt"
type BaseNumType func(int) int
func makeAdd(base int) BaseNumType {
return func(num int) int { // 여기
return base + num
}
}
func makeMul(base int) BaseNumType {
return func(num int) int { // 여기
return base * num
}
}
func main() {
twoBaseAdd := makeAdd(2)
threeBaseAdd := makeAdd(3)
twoBaseMul := makeMul(3)
threeBaseMul := makeMul(3)
for i := 0; i < 3; i++ {
fmt.Println("add : ", twoBaseAdd(i), threeBaseAdd(i))
fmt.Println("mul : ", twoBaseMul(i), threeBaseMul(i))
}
}
Reference
この問題について(Golang-8:匿名関数), 我々は、より多くの情報をここで見つけました https://velog.io/@phoenix/Go-lang-8-익명-함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol