您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页Go学习笔记(六)

Go学习笔记(六)

来源:保捱科技网

(文章持续更新中...有志同道合的人可以一起探讨下。整个系列(1~8)准备重写,不过都是很基础的入门笔记,想学到很深入的东西则不建议阅读...)

Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。可以类比为“类”

Go 语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。

// 结构体的定义
type 类型名 struct {
    字段1 字段1类型
    字段2 字段2类型
    …
}

type Point struct {
    X int
    Y int
}
复制代码

结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存。因此必须在定义结构体并实例化后才能使用结构体的字段

// 基本实例化格式
var ins T

type Point struct {
    X int
    Y int
}
var p Point
p.X = 10
p.Y = 20

// Go 语言中,还可以使用 new 关键字对类型(包括结构体、整型、浮点数、字符串等)进行实例化,结构体在实例化后会形成指针类型的结构体。

ins := new(T)

Go 语言中,对结构体进行&取地址操作时,视为对该类型进行一次 new 的实例化操作

ins := &T{}
Go 语言中,访问结构体指针的成员变量时可以继续使用.操作符。 C/C++ 语言中,使用 new 实例化类型后,访问其成员变量时必须使用->操作符
复制代码

Go语言为任意类型添加方法

// 为基本类型添加方法
package main

import (
    "fmt"
)
// 将int定义为MyInt类型
type MyInt int
// 为MyInt添加IsZero()方法
func (m MyInt) IsZero() bool {
    return m == 0
}
// 为MyInt添加Add()方法
func (m MyInt) Add(other int) int {
    return other + int(m)
}
func main() {
    var b MyInt
    fmt.Println(b.IsZero())
    b = 1
    fmt.Println(b.Add(2))
}
复制代码

转载于:https://juejin.im/post/5cea91cf5188251e030fe1c0

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务