为了账号安全,请及时绑定邮箱和手机立即绑定

Insert 调用方法并插入值

Insert 调用方法并插入值

Go
一只萌萌小番薯 2023-07-17 14:33:08
我用另一种编程语言工作,创建一个 url 来反向地理编码位置。我是 Go 新手,正在慢慢构建脚本。我有 Geofunction(x,y) 方法,其中包含两个变量 x & y 从另一个方法中,我调用上述方法并向变量提供值。我只是无法让它按预期工作。有人可以指出我在哪里可以帮助我找到答案吗?请给我一些帮助。我在 Python 中有一个工作,当我学习 Go 时,我正在翻译脚本理解。我进行了更改以允许其他函数访问某些变量。我需要了解调用的方法是否能够访问变量值。package mainimport "fmt"var Location1x, Location1y stringvar Location1 stringvar rev_geo stringfunc 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: xmain.go:9:21: undefined: yGeofunction(Location1x, Location1y) used as valueOnce 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
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

你少了几块。

  1. x函数定义中和的类型y丢失。由于两者都是strings,因此可以同时定义类型。

  2. 该函数GeoFunction缺少返回类型,应该是string

与 Python 不同,Go 对语法和结构非常严格 ,它会让你的事情变得更加顺利。

尝试类似的方法:


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)

}


查看完整回答
反对 回复 2023-07-17
?
白板的微信

TA贡献1883条经验 获得超3个赞

你的方法定义在这里是错误的,考虑到 go 是一种静态类型语言,你的函数定义应该具有参数的类型,它与参数名称一起使用


package main


import "fmt"


var Location1x, Location1y string

var Location1 string

var rev_geo string


func Geofunction(x string, y 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)

}

这基本上应该可以工作,但更好的方法是使用字符串生成器而不是附加字符串。这样更有效率


查看完整回答
反对 回复 2023-07-17
  • 2 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信