go结构体方法

Golang中的方法是作用在特定类型的变量上,因此自定义类型,都可以有方法,而不仅仅是struct。

结构体是用户单独定义的类型,不能和其他类型进行强制转换

定义格式

func (var *Struct_Name) FuncName( var0, var1... )  return type {}
package main

import (
	"fmt"
)

type test struct {
	name string
	age  int
}

func (v *test) getList() {
	fmt.Println("getList")
}

func main() {
	var s = new(test)

	s.getList()
}

golang中结构体方法没有构造函数,可以自己定义并执行构造函数

package main

import (
	"fmt"
)

type test struct {
	name string
	age  int
}

func (this *test) init(name string, age int) {
	this.name = name
	this.age = age
}

func (this *test) getName() string {
	return this.name
}

func (this *test) getAge() int {
	return this.age
}

func main() {
	var s = new(test)

	s.init("zhangsan", 20)

	fmt.Println(s.getName())
	fmt.Println(s.getAge())
}

原文地址:https://www.cnblogs.com/LC161616/p/9903481.html

时间: 2024-08-03 05:58:27

go结构体方法的相关文章

Go面向对象三之结构体方法

一:结构体方法定义 type Student struct { Name string Age int }//stu可以看做Student的副本,stu就代表Student func (stu Student) say() string { } 二:简单举例 package main import ( "fmt" ) type Personal struct { Name string Age int } func (p Personal) say() { p.Name = "

Swift中的结构体,类,协议,扩展和闭包的用法以及? 和 !的区别

// MARK: - 1.结构体 //1.声明一个结构体 struct Rect {    // 声明结构体变量的属性(存储属性)    var x:Float    var y:Float    var width:Float    var height:Float    // 声明结构体属性,要使用static    static var description:String?        // 声明一个计算属性(是用来专门计算结构体变量属性的setter,和getter方法,其本身没有存

Swift入门篇-结构体

前面主要是介绍swift语言中基本类型的用法,今天给大家介绍的是swift的结构体的用法,swift中结构体的用法和其他语言的用法,还有不太一样,不过您多敲几遍,就可以理解结构体,结构体在ios开发中是灰常重要的一部分,如果您很好的掌握结构体,在后面ios开发中,会理解的更加清楚. 一:结构体声明 格式: struct 结构体名 { } 说明: 1: struct 是定义结构体的关键字 例子 /* 1:struct 是结构体的关键字 2:student 结构体名称 3:student() 创建一

C提高4 多维数组,结构体与二级指针

昨天的试题:原题见昨天作业题 [email protected]:~/high/day03$ cat main.c  /* 二级指针,绝佳训练题1 */ #include <stdio.h> #include <stdlib.h> #include <string.h> int spitspring(char *buf1,char *c,char **myp,int *total) { char *p_head =  buf1; char *p_tail =  buf1

&lt; Objective-C &gt;常用结构体

系统定义的常用结构体 NSRange NSPoint (CGPoint) NSSize (CGSize) NSRect (CGRect) 常用的结构体方法 初始化 NSMakeRange CGPointMake CGSizeMake CGRectMake 打印结构体,返回字符串 - (NSString *) NSStringFromRange:(NSRange) range; - (NSString *) NSStringFromPoint:(NSPoint) aPoint; - (NSStri

3.结构体与链表

转载请标明出处:http://blog.csdn.net/u012637501 一.结构体 struct Student *p:p是一个struct Student *类型的指针变量, 用于存放struct Student类型变量的地址 1.结构体:把一些基本类型数据组合在一起形参的一个新的复合数据类型,用来表示一些复杂的事物,即称为结构体. 2.定义结构体方法 (1)第一种方法:指定结构体名,不定义结构体变量 struct Student { int age; float score; cha

go 语言学习笔计之结构体

go 语言中的结构体方法 结构体名称的大小写有着不同的意义: 小写表示不能被别的包访问 package main import "fmt" type Rect struct { width,height int } func (r *Rect) area() int { return r.width*r.height; } func main() { r:=Rect{width:10,height:10} fmt.Println(r.area()); rp:=&r; fmt.P

C语言结构体数组内带字符数组初始化和赋值

1.首先定义结构体数组: typedef struct BleAndTspRmtCmd{ char terminal[3]; char note[3]; char rmtCmd[10]; char cmdPropt[24];}; BleAndTspRmtCmd为结构体名,可以通过这个结构体名定义其他结构体变量,struct BleAndTspRmtCmd variable: 或者定义结构体数组变量,struct BleAndTspRmtCmd variable[]: 2.或者定义全局结构体变量,

换个语言学一下 Golang (9)——结构体和接口

基本上到这里的时候,就是上了一个台阶了.Go的精华特点即将展开. 结构体定义 上面我们说过Go的指针和C的不同,结构体也是一样的.Go是一门删繁就简的语言,一切令人困惑的特性都必须去掉. 简单来讲,Go提供的结构体就是把使用各种数据类型定义的不同变量组合起来的高级数据类型.闲话不多说,看例子: type Rect struct { width float64 length float64 } 上面我们定义了一个矩形结构体,首先是关键是type表示要定义一个新的数据类型了,然后是新的数据类型名称R