Golang函数语法解析及示例演示

Golang函数语法解析及示例演示 https://play.golang.org/p/VYLXP09I8lY

我提出以下问题是因为虽然对你们来说可能很基础,但这正是我目前的水平。在学习Go语言之前,我完全没有编程背景。所以我对C语言或其他任何语言都一无所知。我觉得有必要先说明这一点。

那么,在上面的代码中,请告诉我:

  1. 哪部分是接收器?
  2. 哪部分是参数?
  3. 哪部分是返回值?

我知道什么是标识符和代码。我还是学到了一些东西的!

11 回复

我已经多次参加这个导览

更多关于Golang函数语法解析及示例演示的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


那么你应该能够回答你的问题。

例如,我不明白这是什么意思……在页面的左上角……整个教程中都是如此

这确实很有帮助,我需要花点时间研究一下,现在就开始。

那么在"func bar(s string)"中,s string是参数,也就是形参吗?

我很多很多年前学过高中数学。听起来是个不错的建议。

NobbZ:

你知道页面左上角那个是什么意思吗?

我在《Go语言之旅》的第一页发现了这个

也许换个爱好会更好

这可能是对的,但我不这么认为;所以我会继续

你打算问多少次关于函数基础语法的问题?我们反复告诉过你要去学习Go语言之旅。请现在就去完成。

如果在完成教程后你仍然想提出类似上面的问题,请学会如何提出聪明的问题

嗨 Cherolyn,

我不得不赞同 Norbert 写的大部分内容。你在一个非常基础的阶段停滞了几个月,没有取得在合理时间内精通所需的进展。

我一直在想,你使用的教育资源可能并不适合你。

每个人的学习方式都不同。有些人通过阅读书籍或观看视频学得很好,而另一些人则通过亲身示范学得更快。对于数学来说,拥有一位能以恰当方式与你沟通的好老师非常重要。也许编程也是如此。当我学习新的计算机相关技术时,我会花大量时间提前寻找特定的书籍、视频、网站或其他资源,以确保我拥有最优的资源。这样,我就不会浪费时间学习那些并不真正有效的东西。

我认为你需要尝试不同的方法,找到真正适合你的学习方式。

jayts:

你需要在合理时间内熟练掌握。

感谢你的观点。不过我认为除了我生命的终结(希望还有好多年)之外,并不存在时间限制。我希望有朝一日这能成为我的职业,但我现在只是一步一步来。

我很难过没有更多时间投入编程,但目前我的时间非常有限。我正在努力挤出更多时间。

我一直认为你使用的教育资源并不适合你。

我觉得它非常有益,因为它是"按我的节奏"进行的。

你说"我认为你需要尝试不同的事物,找到真正让你开窍的方法"可能是对的。

但我深深热爱选择的这条道路,并且会继续走下去。是的,我进展缓慢如龟,但这并不困扰我。如果给论坛上的任何人带来不适,我表示歉意。对于这些人,你们可以忽略我的帖子。我总会找到答案的。

cherilexvold1974:

我不知道这是什么意思…在页面的左上角

你是指"Hello"吗?

或者页面上左上角有什么你不知道含义的内容?提问时请更明确些,我们无法读懂你的想法,你也不能读懂我们的。

既然你在这里已经待了相当长一段时间,却仍在询问通常在前三节课就会涵盖并假定之后应该理解的问题,你真的应该找个人当面教你Go语言(或编程)。如果做不到,或许换个爱好会更好。

但试图通过提出非常基础的问题来学习,通常甚至只是一个指向playground的链接而没有实际的问题,这导致我们需要反过来问你,而你又不回答或很晚才回复…这对你不会有好结果。你应该尝试花一两周时间进行有指导的全日制编程学习,或者至少参加社区学院/夜校的课程。

抱歉话说得重了些,但我真心认为继续像以前那样做不会让你收获太多。

  1. 没有接收器。要拥有接收器,你必须定义带有方法的类型。在你的程序中,这两者都尚未定义。

  2. “Parameter”(形参)是"argument"(实参)的另一种说法。有人可能想纠正我并指出两者存在区别,但为了简化理解,这两个词都用于描述你在调用函数时,放在函数名后面括号中的变量或字面量,例如:

    func myFunction(a, b, c)
    

    在上面的例子中,abc 就是形参。

  3. return 是 Go 语言中的一个关键字,用于从函数返回一个值。在你程序的第 23 行,你写了:

    return fmt.Sprint("Hello from woo, ", st)
    

学习一点数学(代数)知识可能会对你有帮助,这样你就能了解函数在数学中是如何使用的。编程语言中的函数概念正源于此。几乎所有学习编程的人都在学校上过类似的课程,所以当他们在编程语言中遇到函数时,会觉得非常简单和直观。

简单来说,函数是接收一些值(实参),对它们进行某种操作从而产生另一个值,然后函数对于这些实参的值就是那个结果。

假设你有一个带平方根键的计算器。你按下 2,然后按下平方根键,显示屏上就会出现 1.41421。计算器以 2 作为实参,对其执行平方根函数,结果就是 1.41421。这可以写成:

y = sqrt(x)

所以,如果 x 是 2,sqrt(2) 的结果就是 y = 1.41421。

希望这对你有所帮助。

以下是针对您提供的代码链接中函数语法的解析,我将逐一回答您的问题。代码示例基于Go语言标准语法,假设函数定义类似以下形式(由于链接无法直接访问,我根据常见模式推断):

package main

import "fmt"

type MyStruct struct {
    value int
}

// 示例函数
func (m MyStruct) Multiply(factor int) int {
    return m.value * factor
}

func main() {
    obj := MyStruct{value: 5}
    result := obj.Multiply(3)
    fmt.Println(result) // 输出: 15
}

1. 接收器部分

接收器是方法定义中括号内的部分,它指定了方法关联的类型。在上例中:

  • (m MyStruct) 是接收器。
    • m 是接收器变量(标识符),用于在方法内访问类型实例。
    • MyStruct 是接收器类型(这里是一个结构体)。

接收器允许您为特定类型定义方法,类似于其他语言中的“类方法”。

2. 参数部分

参数是函数或方法名后括号内声明的变量列表,用于接收输入值。在上例中:

  • (factor int) 是参数部分。
    • factor 是参数名(标识符)。
    • int 是参数类型。 参数在调用方法时由调用者传递,例如 obj.Multiply(3) 中的 3 对应 factor

3. 返回值部分

返回值指定了函数或方法输出数据的类型。在上例中:

  • int 是返回值部分(位于参数括号后)。
    • 这表示方法返回一个 int 类型的值。 返回值通过 return 语句提供,例如 return m.value * factor

完整语法分解

在方法定义 func (m MyStruct) Multiply(factor int) int 中:

  • func:关键字,表示函数或方法定义。
  • (m MyStruct):接收器。
  • Multiply:方法名(标识符)。
  • (factor int):参数列表。
  • int:返回值类型。

如果您有具体的代码片段,我可以提供更精确的解析。Go语言的函数语法设计简洁,适合初学者逐步掌握。

回到顶部