go 多个 构造函数_Go语言基础(七)

259bbee45f20bae8e7c7b368758b5812.png

Go语言基础(七)

一、自定义类型和类型别名

二、结构体定义&初始化

三、结构体内存布局

四、构造函数

五、方法和接收者

六、练习


一、自定义类型和类型别名

// 1。自定义类型和类型别名
package main

import "fmt"

type myInt int  // 自定义类型
type yourInt = int   // 类型别名
func main() {
    
	var n myInt
	n = 100
	fmt.Println(n)
	fmt.Printf("%Tn", n)

        var m yourInt 
        m = 100
        fmt.Println(m)
        fmt.Printf("%Tn", m)
}
// 100
// main.myInt
// 100
// int

自定义类型是为了方便给某种类型数据单独添加方法时会用到。

而类型别名的用处,举个例子:rune,byte。其实rune=int32,这样做的目的是为了区分,当看到rune类型就知道是在定义一个字符。

二、结构体定义&初始化

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象概念,Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。

Go语言中的基础数据类型可以表示一些事物的基本属性,但是想要表达一个事物的全部或部分属性时,这个时候再用单一的数据类型就明显无法满足需求了。Go提供了一种自定义数据类型,可以封装多个基本数据,叫做结构体。

package main

import "fmt"

type person struct {
    
	name string
	age int
	gender string
	hobby []string
}

func main() {
    
	var p person
	p.name = "mogul"
	p.age = 25
	p.gender = "boy"
	p.hobby = []string{
    "篮球", "乒乓球"}
	fmt.Println(p)
	fmt.Println(p.name)
	fmt.Printf("%Tn", p)
}

1、匿名结构体

package main

import "fmt"

func main(){
    
        // 匿名结构体,用于临时场景
	var s struct {
    
		x string
		y int
	}
	s.x = "嘿嘿"
	s.y = 18
	fmt.Printf("type:%T value:%vn", s, s)
}

2、创建指针类型结构体

package main

import "fmt"

// 结构体是值类型
type person struct {
    
	name, gender stri
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值