golang学习之旅2

8.结构体与方法
package main

import (
"fmt"
)

//1.结构体定义
type auther struct {
	a1 int
	a2 string
	a3 float32
}

//递归结构体
type node struct {
	pr   *node //前去节点
	data float32
	su   *node //后驱节点
}

//结构体转换
type number struct {
	f float32
}

//别名
type nr number

//结构体的参数传递
//形参
func Auther_test1(Auther auther){
	Auther.a1=123
}
//指针
func Auther_test2(Auther *auther){
	Auther.a1=234
}


//指针

func main() {
	at := new(auther)
	at.a1 = 12
	at.a2 = "你"
	at.a3 = 12.3

	fmt.Printf("int:%d\n", at.a1)
	//2.初始化结构体的值
	ms := &auther{12, "王", 123.23}
	fmt.Printf(ms.a2)
	ma := auther{13, "li", 12.13}
	fmt.Printf("%d\n", ma.a1)
	//三种初始化方式
	mb := auther{0, "a", 12.1}
	mc := auther{a1: 12, a2: "zh", a3: 12.12}
	md := auther{a3: 12.3}
	fmt.Println(mb.a1, mc.a1, md.a3)
	//转换
	a1 := number{5.0}
	a2 := nr{6.0}
	var c = number(a2)
	fmt.Println(a1, a2, c)

	//结构体参数函数调用
	var at1 auther   //声明结构体,这里new出的不行,使用var声明
	Auther_test1(at1)
	fmt.Println(at1.a1) //不是指针的不会影响
	Auther_test2(&at1)
	fmt.Println(at1.a1) //是指针的会影响


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值