相关疑难解决方法(0)

Go中的未命名参数是什么?

我正在Go for Go中编写一个解析器,为了测试它,我从github项目中下载了一堆文件.
https://github.com/andlabs/ui中,我碰到了包含这段代码的文件:

func moveLabel(*Button) {
    from := movingCurrent
    to := 0
    if from == 0 {
        to = 1
    }
    movingBoxes[from].Delete(0)
    movingBoxes[to].Append(movingLabel, false)
    movingCurrent = to
}
Run Code Online (Sandbox Code Playgroud)

有点让我感到困惑的是看到一个Button没有名字的指针作为函数参数,这使得无法从函数内部引用.
但是,鉴于编译器没有抱怨,它似乎在语法上是正确的.
Go中的unamed函数参数的目的是什么?

arguments go

15
推荐指数
2
解决办法
3411
查看次数

在Go中的函数中定义递归函数

我试图在Go中的另一个函数中定义一个递归函数,但我正在努力获得正确的语法.我正在寻找这样的东西:

func Function1(n) int {
   a := 10
   Function2 := func(m int) int {
      if m <= a {
         return a
      }
      return Function2(m-1)
   }

   return Function2(n)
}
Run Code Online (Sandbox Code Playgroud)

我想将Function2保留在Function1的范围内,因为它正在访问其范围的某些元素.

我怎么能在Go中这样做?

非常感谢

recursion function go

13
推荐指数
2
解决办法
2964
查看次数

Go函数参数中下划线的含义

这里有以下功能.我注意到最后一个参数是用_.这种模式的目的是什么?

func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    fmt.Fprint(w, "Welcome!\n")
}
Run Code Online (Sandbox Code Playgroud)

go

9
推荐指数
2
解决办法
2241
查看次数

在 Golang 中使用类型别名声明函数

在 Golang 中可以做这样的事情吗?

package main

import "fmt"

type myFunType func(x int) int

var myFun myFunType = myFunType { return x }  // (1) 

func doSomething(f myFunType) {
    fmt.Println(f(10))
}

func main() {
    doSomething(myFun)
}
Run Code Online (Sandbox Code Playgroud)

换句话说,是否可以使用函数类型别名声明函数类型变量而不重复签名?或者,有没有办法在创建函数类型的变量时不总是重新输入整个函数签名

上面的代码示例,我希望它等同于下面的代码示例(用 line 替换(1)line (2)),导致编译错误syntax error: unexpected return, expecting expression

package main

import "fmt"

type myFunType func(x int) int 

var myFun myFunType = func(x int) int { return 2 * x } // (2)

func doSomething(f myFunType) …
Run Code Online (Sandbox Code Playgroud)

function go type-alias

4
推荐指数
1
解决办法
1935
查看次数

如何打印变量名称而不是分配给变量的值?

我有一个值分配给一个变量。如何打印变量的名称而不是分配给变量的值?我知道我可以将变量名硬编码到 Printf 函数中,但我不想使用它。如果类似的东西在 Go 中有效,我想使用格式化程序。

例子

user := "Jada"
fmt.Println(user)
Run Code Online (Sandbox Code Playgroud)

上面将打印分配给变量的值,即“Jada”。

有没有办法让它打印变量名、用户而不是变量值?

variables go

3
推荐指数
1
解决办法
6143
查看次数

初始化函数字段

我在Go中有一个函数如下:

func MyFunction(name, address, nick string, age, value int) {
    // perform some operations
}
Run Code Online (Sandbox Code Playgroud)

我想用参数调用这个函数("Bob","New York","Builder",30,1000)但是我想在调用函数时使用字段名称.但是以下技术都没有奏效(他们抛出'未解决的参考错误'):

MyFunction(name = "Bob", address = "New York", nick = "Builder", age = 30, value = 1000)

MyFunction(name : "Bob", address : "New York", nick : "Builder", age : 30, value : 1000)
Run Code Online (Sandbox Code Playgroud)

怎么做得好?在初始化结构时使用字段名称没有问题,但是对于函数来说,我似乎缺少某些东西.

function go

-4
推荐指数
1
解决办法
251
查看次数

标签 统计

go ×6

function ×3

arguments ×1

recursion ×1

type-alias ×1

variables ×1