GVKun编程网logo

在Golang中调用代码的地方可以获取文件名吗?(golang调用c代码)

28

对于想了解在Golang中调用代码的地方可以获取文件名吗?的读者,本文将提供新的信息,我们将详细介绍golang调用c代码,并且为您提供关于android–还有另一个地方可以获得google-serv

对于想了解在Golang中调用代码的地方可以获取文件名吗?的读者,本文将提供新的信息,我们将详细介绍golang调用c代码,并且为您提供关于android – 还有另一个地方可以获得google-services.json吗?、go 语言换行的地方可以用分号替代吗?、Golang 函数返回值可以使用别名吗?、golang怎么查找函数调用的地方的有价值信息。

本文目录一览:

在Golang中调用代码的地方可以获取文件名吗?(golang调用c代码)

在Golang中调用代码的地方可以获取文件名吗?(golang调用c代码)

我能够获取当前目录的完整路径,现在我想创建一个函数,该函数将读取或获取执行代码的文件名。我可以获取文件名,但是它返回编写代码的原始文件名:

func GetFileName() string {    _, fpath, _, ok := runtime.Caller(0)    if !ok {        err := errors.New("failed to get filename")        panic(err)    }    filename := filepath.Base(fpath)    // remove extension    filename = removeExtension(filename)    return filename + ".log"}

我想要做的是获取执行代码的当前文件名,例如:

我创建了app.go

package myfunction getCurrentFileName() string {    // some code here that will return the filename where this code is executed.}

然后当我在不同位置调用getCurrentFileName()不同文件时 hello.go它会返回hello.go

我已经在这里停留了一段时间,正在寻找答案。

答案1

小编典典

基本上,这就是您告诉/传递给的内容runtime.Caller():返回条目之前要跳过的堆栈条目数。

如果你通过0在你的代码,这意味着返回堆栈项,其中runtime.Caller()被称为(如果
runtime.Caller())。传递1将跳过您的函数,并返回调用您的函数的函数:

pc, file, line, ok := runtime.Caller(1)if ok {    fmt.Printf("Called from %s, line #%d, func: %v\n",        file, line, runtime.FuncForPC(pc).Name())}

调用包含此功能的subplay.A()示例(在我的示例中):

 7   func main() { 8      // Comment line 9      subplay.A()10   }

输出:

Called from /home/icza/gows/src/play/play.go, line #9, func: main.main

我们看到代码play.go从包的函数main()中打印出在第9行调用了我们的函数的代码main

android – 还有另一个地方可以获得google-services.json吗?

android – 还有另一个地方可以获得google-services.json吗?

我尝试从the docs点击GET A CONfigURATION FILE链接,但the resulting page只是加载和加载.这种情况发生在Firefox和Chrome以及我的手机上.有没有其他方法来获取配置文件?

编辑:我在Chrome开发者控制台中收到这些错误:

Refused to display 'https://accounts.google.com/ServiceLogin?service=cloudconsole&osid=1&passiv…ed%253Dtrue%26cntlbl%3DContinue%2BAdding%2BSign-In%26cntapi%3Dsignin&hl=en' in a frame because it set 'x-frame-options' to 'DENY'.
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://console.developers.google.com') does not match the recipient window's origin ('null').(anonymous function) @ script_foot.js:348n.event.dispatch @ jquery.min.js:3r.handle @ jquery.min.js:3

解决方法:

由于网络连接或类似问题,这可能是一个临时问题.

一种解决方案是在稍后的时间点再试一次.这可能是因为您尝试下载示例项目的google-services.json(com.google.samples.quickstart.signin).

如果您现在需要结果,可以按照步骤将Google登录集成到您的应用中.

>创建一个新的空android工作室项目/如果你有一个
项目跳过此步骤.
>使用此link并按照屏幕上的说明为您的应用生成google-services.json.

Enable Google services for your app

>此处的应用程序名称是指Google Developers
Console
中的项目名称.如果您已经设置了Google开发人员控制台
您的Android应用程序的项目,您可以通过下拉列表选择
菜单.如果您还没有创建一个,只需输入一个名称即可
将在您的开发人员控制台中为您创建项目.
>选择项目所需的Google服务即Google Sign
在,Google Cloud Messaging,AdMob等.在我们的案例中,我们刚刚选择了
谷歌登录.
>您将被要求提供SHA-1哈希.按照these steps获得一个.
>单击生成配置文件.在下一个屏幕上,您将看到为您的应用程序下载google-services.json的选项.下载那个,你很高兴.

Download google-services.json

>获得google-services.json后,请按照these steps完成Google登录.

参考

> Start Integrating Google Sign-In into Your Android App,
> Integrating Google Sign-In into Your Android App

go 语言换行的地方可以用分号替代吗?

go 语言换行的地方可以用分号替代吗?

Golang 函数返回值可以使用别名吗?

Golang 函数返回值可以使用别名吗?

是的,go 函数可以为其返回值使用别名,允许您为返回的值指定一个名称以提高代码可读性和理解性。语法:func functionname(parameterlist) (returnname1 typename1, returnname2 typename2, ...) { // 函数体}

Golang 函数返回值可以使用别名吗?

Golang 函数返回值可以使用别名吗?

简单回答:
是的,Golang 函数可以为其返回值使用别名。

原理:
Go 语言支持命名返回值,这允许您为返回的值指定一个名称,以提高代码可读性和理解性。

立即学习“go语言免费学习笔记(深入)”;

语法:

func functionName(parameterList) (returnName1 typeName1, returnName2 typeName2, ...) {
    // 函数体
}
登录后复制

其中:

  • returnName 是返回值的别名。
  • typeName 是返回值的类型。

实战案例:

以下代码示例演示了如何使用命名返回值:

package main

import "fmt"

func getNumbers() (first, second int) {
    return 10, 20
}

func main() {
    a, b := getNumbers()
    fmt.Println(a, b) // 输出:10 20
}
登录后复制

优点:

使用别名的好处包括:

  • 提高代码的可读性,使读者更容易理解返回值的目的。
  • 增强代码的安全性,因为类型安全得到增强(在编译时检查类型)。
  • 允许在不更改返回值类型的情况下更改返回值的名称。

注意:

  • 函数返回值的别名只能用于局部变量。
  • 别名仅影响给定函数的返回值,不影响其他使用该返回类型的地方。

以上就是Golang 函数返回值可以使用别名吗?的详细内容,更多请关注php中文网其它相关文章!

golang怎么查找函数调用的地方

golang怎么查找函数调用的地方

查找 go 函数调用位置的方法包括:使用 grep 命令搜索函数名称使用 go list 命令打印调用位置使用 go tool pprof 生成调用图使用 ide 的查找功能使用 goimports 工具打印调用和定义位置

golang怎么查找函数调用的地方

如何在 Go 中查找函数调用的位置

在 Go 中查找函数调用的位置可以帮助你快速了解代码中的调用关系,方便调试和维护。以下介绍几种方法:

1. 使用 grep 命令

grep 命令可以查找文件中包含特定字符串的行。可以使用它来搜索函数名称,从而找到函数调用的位置:

立即学习“go语言免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

grep -r function_name .
登录后复制

2. 使用 go list

go list 命令可以列出包和文件中的符号。可以使用 -f 标志来打印函数调用的位置:

go list -f ''{{.Pos}} {{.Name}}'' | grep function_name
登录后复制

3. 使用 go tool pprof

go tool pprof 可以生成程序的性能概要。可以使用 callgraph 命令来生成函数调用图,其中包含函数调用的关系和位置:

go tool pprof -callgraph profile.out
登录后复制

4. 使用 IDE

许多 IDE 都提供了查找函数调用的功能。例如,在 Visual Studio Code 中,可以使用 "Find All References" 或 "Go to Definition" 命令。

5. 使用 goimports

goimports 工具可以自动格式化 Go 代码。它还包含一个 -l 标志,可以打印函数调用和定义的位置:

goimports -l -w .
登录后复制

示例

例如,假设要查找 fmt.Println() 函数调用的位置,可以使用 grep 命令:

grep -r fmt.Println .
登录后复制

这将打印出所有包含 fmt.Println() 调用行。

以上就是golang怎么查找函数调用的地方的详细内容,更多请关注php中文网其它相关文章!

关于在Golang中调用代码的地方可以获取文件名吗?golang调用c代码的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于android – 还有另一个地方可以获得google-services.json吗?、go 语言换行的地方可以用分号替代吗?、Golang 函数返回值可以使用别名吗?、golang怎么查找函数调用的地方的相关信息,请在本站寻找。

本文标签: