登录
首页 >  Golang >  Go问答

Insert 调用方法并插入值

来源:stackoverflow

时间:2024-03-04 23:29:02 385浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《Insert 调用方法并插入值》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

我用另一种编程语言工作,创建一个 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 的类型。由于都是strings,所以可以同时定义类型。
  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 是一种静态类型语言,你的函数定义应该具有参数的类型,它与参数名称一起使用

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)
}

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

本篇关于《Insert 调用方法并插入值》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>