go - 插入调用方法并插入值

标签 go

我在另一种编程语言中使用它,创建一个 url 来反向地理编码位置。我是 Go 的新手,正在慢慢构建脚本。

我有方法 Geofunction(x,y) 和两个变量 x & y 我从另一种方法调用上述方法并将值提供给变量。

我无法让它按预期工作。

有人可以指出我在哪里可以帮助我找到答案,请给我一些帮助。

我在 Python 中有一个工作的笨蛋,当我学习 Go 时,我正在翻译脚本理解。

我已进行更改以允许其他函数访问某些变量。我需要了解调用的方法是否能够访问变量值。

package main

import "fmt"

var Location1x, Location1y string
var Location1 string
var rev_geo string

func Geofunction(x, y) {
    var str1 string = "https://eu1.locationiq.com/v1/reverse.php?key="
    var str2 string = "**********************"  //API Key
    var str3 string = x // '48.853106'
    var str4 string = "&lon="
    var str5 string = y // '2.384202'
    var str6 string = "&format=json"
    var rev_geo string = str1 + str2 + str3 + str4 + str5 + str6

    return rev_geo
}

func Locator() {
    Location1x, Location1y = "48.853106", "2.384202"
    Location1 = Geofunction(Location1x, Location1y)
}

func main() {
    Locator()
    fmt.Println(Location1)
}```

Expected:
A string of a URL is printed.

The three errors are: 
main.go:9:18: undefined: x
main.go:9:21: undefined: y
Geofunction(Location1x, Location1y) used as value


Once I get the above sorted, I will then reuse the method to produce multiple strings in an API test that confirms specific data in the json files returned from the server

最佳答案

您遗漏了一些内容。

  1. 函数定义中缺少xy 的类型。由于都是string,所以可以同时定义类型。
  2. 函数 GeoFunction 缺少返回类型,返回类型应为 string

与 Python 不同,Go 在语法和结构方面非常严格 - 我强烈建议完成 Go Tour在转译任何代码之前,它会让事情变得更顺利。

尝试这样的事情:

package main

import (
    "fmt"
)

var Location1x, Location1y string
var Location1 string
var rev_geo string

func Geofunction(x, y string) string {
    var str1 string = "https://eu1.locationiq.com/v1/reverse.php?key="
    var str2 string = "**********************"  //API Key
    var str3 string = x // '48.853106'
    var str4 string = "&lon="
    var str5 string = y // '2.384202'
    var str6 string = "&format=json"
    var rev_geo string = str1 + str2 + str3 + str4 + str5 + str6

    return rev_geo
}

func Locator() {
    Location1x, Location1y = "48.853106", "2.384202"
    Location1 = Geofunction(Location1x, Location1y)
}

func main() {
    Locator()
    fmt.Println(Location1)
}

关于go - 插入调用方法并插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57647256/

相关文章:

Go:再次将类型为 uuid.UUID (satori) 的 reflect.Value 转换回 uuid.UUID

string - bufio 扫描仪和处理新线路

go - 修改原生 Golang 包后如何重建它们?

facebook - 使用huandu/facebook Golang FB api时出现DecodeField错误

macos - 为什么这个 exec.Command 到另一个打开的 tty 不能正常工作

go - 通过 channel 和网络传递 map 、 slice ?

go - 在后台执行命令

go - 输入字节 68 处的非法 base64 数据

go - 我想获得一个数据 session 和标题,但是从数据库中检索数据时它在循环之外

dataframe - 如何编码和解码或转换对象,同时避免在 golang 中键入