Insert 调用方法并插入值

我用另一种编程语言工作,创建一个 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



一只萌萌小番薯
浏览 109回答 2
2回答

撒科打诨

你少了几块。x函数定义中和的类型y丢失。由于两者都是strings,因此可以同时定义类型。该函数GeoFunction缺少返回类型,应该是string与 Python 不同,Go 对语法和结构非常严格 ,它会让你的事情变得更加顺利。尝试类似的方法:package mainimport (    "fmt")var Location1x, Location1y stringvar Location1 stringvar rev_geo stringfunc 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 是一种静态类型语言,你的函数定义应该具有参数的类型,它与参数名称一起使用package mainimport "fmt"var Location1x, Location1y stringvar Location1 stringvar rev_geo stringfunc Geofunction(x string, y string) {var str1 string = "https://eu1.locationiq.com/v1/reverse.php?key="var str2 string = "**********************"  //API Keyvar 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 + str6return rev_geo}func Locator() {Location1x, Location1y = "48.853106", "2.384202"Location1 = Geofunction(Location1x, Location1y)}func main() {Locator()fmt.Println(Location1)}这基本上应该可以工作,但更好的方法是使用字符串生成器而不是附加字符串。这样更有效率
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go