我在另一种编程语言中使用它,创建一个 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
最佳答案
您遗漏了一些内容。
- 函数定义中缺少
x
和y
的类型。由于都是string
,所以可以同时定义类型。 - 函数
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/