go函数与方法的区别
### 面向过程与面向对象的区别
一时想不到怎么更好的用通俗的语言解释这种两种的区别,请允许我借用其他人的解释
`https://www.cnblogs.com/strivers/p/6681876.html`
**面向过程**(你说的函数)就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了
**面向对象**(你说的方法)是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
### 补充一:结构体名字没有首字母大写
不确定你是不是还在新手村,还是只是单独的举个简单例子,注意到你的结构体名字没有首字母大写,我就多啰嗦一句。
Go语言中字母大写 代替了 public,小写为private
`没有首字母大写别的包无法调用,函数体与方法都是`
### 补充二: 程序里面方法和函数有区别吗?
那东西不是同一个含义吗?
我记得在我的概念里面是一个是全局函数/常规函数/通用函数---你说的函数,另外一个是某某类的函数,某某对象的函数---你说的方法
我不确定是不是自己的概念出问题啦,需要其他人确认一下。
我接触到的几种编程语言基本上定义函数/方法都是 function这个单词,要不就没有
为此我专门去查了几种比较常见的编程语言定义函数/方法的格式
#### C定义函数关键词:无
```c
返回值类型 方法名称(参数类型 参数名称,……)
{
方法内容
}
```
#### C++定义函数关键词:无
```c++
返回值类型 函数名(参数类型 参数名称,…… )
{
方法内容
}
```
#### Java定义函数关键词:无
```java
修饰符(public static)返回值类型 方法名称(参数类型 参数名称,……){
方法体
return 返回值;
}
```
#### php定义函数关键词:function
```
function 方法名称(参数名称,……)
{
// 要执行的代码
}
```
python3定义函数关键词:def
``` python
def 函数名(参数名称,……):
函数体
```
#### js定义函数关键词:function
```javascript
function 方法名称(参数名称,……)
{
// 执行代码
}
```
#### Go定义函数关键词:func
```golang
func 函数名(参数名称 参数类型,……) [返回值名称 返回值类型,……] {
函数体
}
```
#### 总结:在这些语言里面定义函数/方法的关键词为
C、C++、JAVA的关键词: **无**
PHP、JS、Go的关键词: **function及其简写**
Python3的关键词: **define的简写def**
我有很大的把握确定,`函数与方法很可能是编程语言里面同一个概念的不同中文翻译`
### 数据收集
不过以上都是我一家之言,并没有100%把握;所以后面的人如果方便的话,做个统计。
在你们的理念里面,函数与方法是两个不同的东西吗?
**相同**的请回复 `1`;
**不相同**的请回复 `2`;