Golang函数语法解析及示例演示
Golang函数语法解析及示例演示 https://play.golang.org/p/VYLXP09I8lY
我提出以下问题是因为虽然对你们来说可能很基础,但这正是我目前的水平。在学习Go语言之前,我完全没有编程背景。所以我对C语言或其他任何语言都一无所知。我觉得有必要先说明这一点。
那么,在上面的代码中,请告诉我:
- 哪部分是接收器?
- 哪部分是参数?
- 哪部分是返回值?
我知道什么是标识符和代码。我还是学到了一些东西的!
那么你应该能够回答你的问题。
例如,我不明白这是什么意思……在页面的左上角……整个教程中都是如此
这确实很有帮助,我需要花点时间研究一下,现在就开始。
那么在"func bar(s string)"中,s string是参数,也就是形参吗?
我很多很多年前学过高中数学。听起来是个不错的建议。
NobbZ:
你知道页面左上角那个是什么意思吗?
我在《Go语言之旅》的第一页发现了这个
也许换个爱好会更好
这可能是对的,但我不这么认为;所以我会继续
嗨 Cherolyn,
我不得不赞同 Norbert 写的大部分内容。你在一个非常基础的阶段停滞了几个月,没有取得在合理时间内精通所需的进展。
我一直在想,你使用的教育资源可能并不适合你。
每个人的学习方式都不同。有些人通过阅读书籍或观看视频学得很好,而另一些人则通过亲身示范学得更快。对于数学来说,拥有一位能以恰当方式与你沟通的好老师非常重要。也许编程也是如此。当我学习新的计算机相关技术时,我会花大量时间提前寻找特定的书籍、视频、网站或其他资源,以确保我拥有最优的资源。这样,我就不会浪费时间学习那些并不真正有效的东西。
我认为你需要尝试不同的方法,找到真正适合你的学习方式。
jayts:
你需要在合理时间内熟练掌握。
感谢你的观点。不过我认为除了我生命的终结(希望还有好多年)之外,并不存在时间限制。我希望有朝一日这能成为我的职业,但我现在只是一步一步来。
我很难过没有更多时间投入编程,但目前我的时间非常有限。我正在努力挤出更多时间。
我一直认为你使用的教育资源并不适合你。
我觉得它非常有益,因为它是"按我的节奏"进行的。
你说"我认为你需要尝试不同的事物,找到真正让你开窍的方法"可能是对的。
但我深深热爱选择的这条道路,并且会继续走下去。是的,我进展缓慢如龟,但这并不困扰我。如果给论坛上的任何人带来不适,我表示歉意。对于这些人,你们可以忽略我的帖子。我总会找到答案的。
cherilexvold1974:
我不知道这是什么意思…在页面的左上角
你是指"Hello"吗?
或者页面上左上角有什么你不知道含义的内容?提问时请更明确些,我们无法读懂你的想法,你也不能读懂我们的。
既然你在这里已经待了相当长一段时间,却仍在询问通常在前三节课就会涵盖并假定之后应该理解的问题,你真的应该找个人当面教你Go语言(或编程)。如果做不到,或许换个爱好会更好。
但试图通过提出非常基础的问题来学习,通常甚至只是一个指向playground的链接而没有实际的问题,这导致我们需要反过来问你,而你又不回答或很晚才回复…这对你不会有好结果。你应该尝试花一两周时间进行有指导的全日制编程学习,或者至少参加社区学院/夜校的课程。
抱歉话说得重了些,但我真心认为继续像以前那样做不会让你收获太多。
-
没有接收器。要拥有接收器,你必须定义带有方法的类型。在你的程序中,这两者都尚未定义。
-
“Parameter”(形参)是"argument"(实参)的另一种说法。有人可能想纠正我并指出两者存在区别,但为了简化理解,这两个词都用于描述你在调用函数时,放在函数名后面括号中的变量或字面量,例如:
func myFunction(a, b, c)在上面的例子中,
a、b和c就是形参。 -
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语言的函数语法设计简洁,适合初学者逐步掌握。

