Golang之方法(自定义类型,struct)

方法的使用,请看本天师的代码

//Golang的方法定义
//Golang中的方法是作用在特定类型的变量上,因此自定义类型,都可以有方法,不仅仅是struct
//定义:func (recevier type) methodName(参数列表)(返回值列表){}
//方法和函数的区别
/*
1,函数调用:function(variable,参数列表)
2, 方法,variable.function(参数列表)
方法的控制,通过大小写空格控制
 */

。。。。

package main

//Golang的方法定义
//Golang中的方法是作用在特定类型的变量上,因此自定义类型,都可以有方法,不仅仅是struct
//定义:func (recevier type) methodName(参数列表)(返回值列表){}
import "fmt"

type integer int

func (p integer) print() {
    fmt.Println("p is:", p)
}
//这里传递的是副本,想改变p的值,需要传递指针
func (p *integer) set(b integer) {
    *p = b
}

type Student struct {
    Name  string
    Age   int
    Score int
    sex   int
}

//这里需要接受指针 *Student(接收者),否则修改不了值
func (p *Student) init(name string, age int, score int) {
    p.Name = name
    p.Age = age
    p.Score = score
    fmt.Println(p)
}
func (p Student) get() Student {
    return p
}

func main() {
    var stu Student
    //修改地址的写法(&stu).init
    //但是go可以自动知道,接受者是指针,这里stu就传递地址
    stu.init("stu", 18, 99)
    stu1 := stu.get()
    fmt.Println(stu1)

    //type integer方法
    var a integer
    a = 100
    a.print()
    a.set(1000)
    a.print()
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏221-B

python正则表达式的部分特殊符号

\w - 匹配字母或数字或下划线或汉字(3.x版本可以匹配汉字,但2.x版本不可以) \s - 匹配任意的空白符 \b - 在正则表达式中表示单词的开头或结尾,...

14610
来自专栏Flutter入门到实战

老司机用一篇博客带你快速熟悉Dart语法

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/3d927a7bf020

50320
来自专栏orientlu

读 《C Traps and Pitfalls》Record

单引号实际代表一个整数 双引号代表指向无名数组的起始字符的指针(字符结尾 0) 使用库函数计算得到的字符串长度不包括结尾的0!

12230
来自专栏飞雪无情的博客

Go语言实战笔记(六)| Go Map

Map是一种数据结构,是一个集合,用于存储一系列无序的键值对。它基于键存储的,键就像一个索引一样,这也是Map强大的地方,可以快速快速检索数据,键指向与该键关联...

11310
来自专栏林欣哲

区块链开发之Go语言—字符串和字节

字符串与字节的关系 Go 代码使用 UTF-8 编码,字符串和字节之间的转换依据的是UTF-8编码。注意中文是3个字节对应一个中文的字符串。 下面将归类讲述负责...

41960
来自专栏超然的博客

ECMAScript 6 笔记(一)

       1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国...

11730
来自专栏chenjx85的技术专栏

leetcode-844-比较含退格的字符串(用vector取代stack)

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

7710
来自专栏Coding迪斯尼

自制monkey语言编译器:符号系统与代码执行

9020
来自专栏Golang语言社区

Golang语言之defer-再议

defer语句被用于预定对一个函数的调用。我们把这类被defer语句调用的函数称为延迟函数。注意,defer语句只能出现在函数或方法的内部。 一条defer语句...

355140
来自专栏二进制文集

30分钟玩转「正则表达式」

推荐阅读:Jeffrey Friedl 《精通正则表达式(第3版)》,本文是该书的读书笔记。

13320

扫码关注云+社区

领取腾讯云代金券