修复strcut错别字,针对web开发不同语言开发者的类比
This commit is contained in:
20
2.4.md
20
2.4.md
@@ -6,11 +6,11 @@ Go语言中,也和C或者其他语言一样,我们可以声明新的类型
|
||||
name string
|
||||
age int
|
||||
}
|
||||
看到了吗?申明一个strcut如此简单,上面的类型包含有两个字段
|
||||
看到了吗?申明一个struct如此简单,上面的类型包含有两个字段
|
||||
- 一个string类型的字段name,用来保存用户名称这个属性
|
||||
- 一个int类型的字段age,用来保存用户年龄这个属性
|
||||
|
||||
如何使用strcut呢?请看下面的代码
|
||||
如何使用struct呢?请看下面的代码
|
||||
|
||||
type person struct {
|
||||
name string
|
||||
@@ -32,7 +32,7 @@ Go语言中,也和C或者其他语言一样,我们可以声明新的类型
|
||||
|
||||
P := person{age:24, name:"Tom"}
|
||||
|
||||
下面我们看一个完整的使用strcut的例子
|
||||
下面我们看一个完整的使用struct的例子
|
||||
|
||||
package main
|
||||
import "fmt"
|
||||
@@ -44,7 +44,7 @@ Go语言中,也和C或者其他语言一样,我们可以声明新的类型
|
||||
}
|
||||
|
||||
// 比较两个人的年龄,返回年龄大的那个人,并且返回年龄差
|
||||
// strcut也是传值的
|
||||
// struct也是传值的
|
||||
func Older(p1, p2 person) (person, int) {
|
||||
if p1.age>p2.age { //比较p1和p2这两个人的年龄
|
||||
return p1, p1.age-p2.age
|
||||
@@ -61,7 +61,7 @@ Go语言中,也和C或者其他语言一样,我们可以声明新的类型
|
||||
//两个字段都写清楚的初始化
|
||||
bob := person{age:25, name:"Bob"}
|
||||
|
||||
//按照strcut定义顺序初始化值
|
||||
//按照struct定义顺序初始化值
|
||||
paul := person{"Paul", 43}
|
||||
|
||||
tb_Older, tb_diff := Older(tom, bob)
|
||||
@@ -78,10 +78,10 @@ Go语言中,也和C或者其他语言一样,我们可以声明新的类型
|
||||
bob.name, paul.name, bp_Older.name, bp_diff)
|
||||
}
|
||||
|
||||
###strcut的匿名字段
|
||||
我们上面介绍了如何定义一个strcut,定义的时候是字段名与其类型一一对应,实际上Go支持只提供类型,而不写字段名的方式,也就是匿名字段,也称为嵌入字段。
|
||||
###struct的匿名字段
|
||||
我们上面介绍了如何定义一个struct,定义的时候是字段名与其类型一一对应,实际上Go支持只提供类型,而不写字段名的方式,也就是匿名字段,也称为嵌入字段。
|
||||
|
||||
当匿名字段是一个strcut的时候,那么这个strcut所拥有的全部字段都被隐式地引入了当前定义的这个strcut。
|
||||
当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。
|
||||
|
||||
让我们来看一个例子,让上面说的这些更具体化
|
||||
|
||||
@@ -127,7 +127,7 @@ Go语言中,也和C或者其他语言一样,我们可以声明新的类型
|
||||
mark.Human = Human{"Marcus", 55, 220}
|
||||
mark.Human.age -= 1
|
||||
|
||||
通过匿名访问和修改字段相当的有用,但是不仅仅是strcut字段哦,所有的内置类型和自定义类型都是可以作为匿名字段的。请看下面的例子
|
||||
通过匿名访问和修改字段相当的有用,但是不仅仅是struct字段哦,所有的内置类型和自定义类型都是可以作为匿名字段的。请看下面的例子
|
||||
|
||||
package main
|
||||
import "fmt"
|
||||
@@ -166,7 +166,7 @@ Go语言中,也和C或者其他语言一样,我们可以声明新的类型
|
||||
fmt.Println("Her preferred number is", jane.int)
|
||||
}
|
||||
|
||||
从上面例子我们看出来strcut不仅仅能够将strcut作为匿名字段、自定义类型、内置类型都可以作为匿名字段,而且可以在相应的字段上面进行函数操作(如例子中的append)。
|
||||
从上面例子我们看出来struct不仅仅能够将struct作为匿名字段、自定义类型、内置类型都可以作为匿名字段,而且可以在相应的字段上面进行函数操作(如例子中的append)。
|
||||
|
||||
这里有一个问题:如果human里面有一个字段叫做phone,而student也有一个字段叫做phone,那么该怎么办呢?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user