English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基礎トレーニング

Golang コントロール文

Golang ファンクション & メソッド

Golang 構造体

Golang スライス & 配列

Golang 文字列(String)

Golang ポインタ

Golang インターフェース

Golang 并行

Golang エラ(Error)

Golang その他の雑項

Go 言語の匿名関数

Go言語には、匿名関数と呼ばれる特別な関数があります。匿名関数は名前を持たない関数です。内联関数を作成するときに非常に便利です。Go言語では、匿名関数はクロージャを形成できます。匿名関数はまた、関数リテラル

文法:

    func(parameter_list) return_type {
        //コード
        //return_typeが提供されている場合、return文を使用する
        //return_typeが提供されていない場合、
        //return文を使用する
        return
    }()
package main 
  
import "fmt"
  
func main() { 
      
    //匿名関数
   func() 
  
      fmt.Println("ようこそ! に oldtoolbag.com" 
  }() 
    
}

出力:

ようこそ! に oldtoolbag.com

重要事項:

  • Go言語では、匿名関数を変数に割り当てることができます。関数を変数に割り当てるとき、変数の型は関数の型になります。変数を関数のように呼び出すことができます。以下の例を参照してください。

    package main 
      
    import "fmt"
      
    func main() { 
          
        // 匿名関数を変数に割り当てる
       value := func() 
          fmt.Println("ようこそ! に oldtoolbag.com" 
      } 
      value() 
        
    }

    出力:

    ようこそ! に oldtoolbag.com
  • 匿名関数で引数を渡すこともできます。

    package main 
      
    import "fmt"
      
    func main() { 
          
        //匿名関数で引数を渡す
      func(ele string){ 
          fmt.Println(ele) 
      }("w3codebox" 
        
    }

    出力:

    w3codebox
  • 匿名関数を他の関数に引数として渡すこともできます。

    package main 
      
    import "fmt"
      
      
      //匿名関数を引数として渡す  
     func GFG(i func(p, q string) string){ 
         fmt.Println(i("Geeks", "for")) 
           
     } 
        
    func main() { 
        value := func(p, q string) string{ 
            return p + q + "Geeks"
        } 
        GFG(value) 
    }

    出力:

    w3codebox
  • 他の関数から匿名関数を返すこともできます。

    package main 
      
    import "fmt"
      
     //匿名関数を返す
     func GFG() func(i, j string) string{ 
         myf := func(i, j string)string{ 
              return i + j + "w3codebox"
         } 
        return myf 
     } 
        
    func main() { 
        value := GFG() 
        fmt.Println(value("ようこそ", "に")) 
    }

    出力:

    ようこそ w に3codebox