登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  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. 函数定义中缺少 x 和 y 的类型。由于都是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删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>