婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > go語言匿名函數的使用

go語言匿名函數的使用

熱門標簽:中國地圖標注省會高清 南通如皋申請開通400電話 西部云谷一期地圖標注 學海導航地圖標注 江西轉化率高的羿智云外呼系統 高德地圖標注口訣 廣州呼叫中心外呼系統 地圖標注的汽車標 浙江高速公路地圖標注
package main
import (
 "fmt"
 "go_code/chapter02/funinit/utils"
)
// 3、全局匿名函數
var(
 Fun1 = func(n1 int,n2 int) int {
 return n1 * n2
  }
)
// init 函數,通常在init函數中完成初始化工作
func main(){
 // 1、在定義匿名函數時就直接調用,這種方式匿名函數只能調用一次
 res1 := func(n1 int,n2 int) int{
 return n1+n2
 }(10,20)
 fmt.Println("res1=",res1)
 // 2、a 的數據類型就是函數類型,此時我們可以通過a 完成調用
 a := func(n1 int,n2 int) int{
 return n1 + n2
 }
 res2 := a(100,1000)
 fmt.Println("res2=",res2)
 res3 := Fun1(100,1000)
 fmt.Println("res3=",res3)
  fmt.Println("main......")
  fmt.Println("Age is value",utils.Age,"Name is value",utils.Name)
}

沒什么好說的, 見一個,熟悉一個:

package main
import (
 "fmt"
)
func main() {
 func() {
   fmt.Printf("func 1\n")
 }()
 func(x int) {
   fmt.Printf("func 2, x is %d\n", x)
 }(2)
 a := func(x int) int {
   fmt.Printf("func 3, x is %d\n", x)
   return 5
   }
 fmt.Println(a(3))
 fmt.Printf("%T\n", func() {
   fmt.Printf("func 1\n")
 })
 fmt.Printf("%T\n", func(x int) {
   fmt.Printf("func 2, x is %d\n", x)
 })
 fmt.Printf("%T\n", a)
}

結果:

func 1
func 2, x is 2
func 3, x is 3
5
func()
func(int)
func(int) int

繼續看:

package main
import (
  "fmt"
)
func main() {
  test(func(x string) {
   fmt.Println(x)
 })
}
func test(f func(string)) {
  f("hello")
}

結果:hello

但如下都錯誤, 想想為什么:

package main
import (
 "fmt"
)
func main() {
 func() {
   fmt.Printf("func 1\n")
 }
}
package main
import (
  "fmt"
)
func main() {
  test(func g(x string) {
   fmt.Println(x)
 })
}
func test(f func(string)) {
  f("hello")
}

最后, 看看下面兩個正確程序的:

package main
import (
  "fmt"
)
var x = "hello"
func main() {
  test(func (x *string) {
   *x = "world"
 })
 fmt.Println(x)
}
func test(f func(*string)) {
}
package main
import (
  "fmt"
)
func main() {
 var s1 = "hello"
 var s2 = "world"
  test(func(x *string, y *string) {
   *x += "_123"
   *y += "_456"
   }, s1, s2)
  fmt.Println(s1, s2) // hello_123 world_456
}
func test(f func(*string, *string), s1 *string, s2 *string) {
 f(s1, s2)
}
package main
import (
  "fmt"
)
var s1 = "hello"
var s2 = "world"
func main() {
  test(func(x *string, y *string) {
   *x += "_123"
   *y += "_456"
   })
  fmt.Println(s1, s2) // hello_123 world_456
}
func test(f func(*string, *string)) {
 f(s1, s2)
}

不多說。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • go代碼實現買房貸款月供計算的方法
  • linux下搭建go環境的安裝配置講解
  • golang的空標識符理解
  • 為什么Go語言把類型聲明放在后面?
  • 用go gin server來做文件上傳服務
  • 使用go gin來操作cookie的講解
  • 在go中使用omitempty的代碼實例
  • Go語言init函數詳解
  • Golang命令行進行debug調試操作
  • go panic時如何讓函數返回數據?

標簽:吐魯番 保定 德宏 常州 曲靖 貴州 東營 許昌

巨人網絡通訊聲明:本文標題《go語言匿名函數的使用》,本文關鍵詞  語言,匿名,函數,的,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《go語言匿名函數的使用》相關的同類信息!
  • 本頁收集關于go語言匿名函數的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 乌苏市| 沂水县| 安达市| 南乐县| 安国市| 西青区| 故城县| 商水县| 屯昌县| 隆德县| 吉安市| 姜堰市| 高雄县| 昂仁县| 会昌县| 浑源县| 井冈山市| 清涧县| 康定县| 油尖旺区| 嘉禾县| 玉溪市| 太和县| 宜阳县| 沙洋县| 南丰县| 丹东市| 六枝特区| 沙田区| 会东县| 桦南县| 荔波县| 石林| 涟水县| 滦平县| 安阳县| 保定市| 太白县| 青铜峡市| 奎屯市| 龙门县|