golang 语法小计

结构体

学习过C语言的同学肯定都知道结构体,没错,就是那个东西 0.0,结构体让Go有了面向对象的概念

type Small struct {
	Name string //公有变量大写
	Sex string 
	kg int //私有变量小写
}

如何申请一个结构体

meStruct := new(Small) //可以申请一个空的结构体,返回一个指针
meStruct := &Small{} //同上
meStruct := Small{} //返回一个结构体,是类型的
meStruct := &Small{"small","男",1} //可以初始化
meStruct := &Small{Name:"Small"} //也可以键值对这样来初始化

面向对象

基于结构体,我们可以给结构体上设置很多东西

函数名称前面可以设置函数附属的结构体,也就是绑定方法

私有方法和共有方法同样使用大小写区分

type Small struct {
	Name string //公有变量大写
	Sex string
	kg int //私有变量小写
}

func(s *Small) GetName()(string) {
	return "smallSohoSolo"
}

func(s *Small) GetSex()(string) {
	return "man"
}

func(Small) getkg()(int) { //注意这里的Small没加*,意味着是值传递,并且小写是私有方法
	return SmallSoho.kg
}

 

构造函数如何设置?

不支持构造函数重载

静态方法和属性呢?

Go不支持static所以也就没有这类东西,静态的方法请自定义一个函数直接调用,静态的属性请在包中定义一个变量使用。

反问一句,可以直接定义函数,为什么要用静态方法呢?

接口

接口的含义跟Java一样,Go中不需要显示的去implement一下,只要实现一个接口的所有方法就可以了。

package main

我们都看到了这行

包的概念类似Java,只不过包名是可以和文件名不一样的(虽然没人这么写)

一个go app中只能有一个main包,其中存在唯一一个main方法,没有返回值也没有入参

每一个包还可以有init方法,虽然init方法不限制个数,不过init方法的调用顺序不固定,所以推荐一个包中只写一个init方法,init方法会在包被import过来的时候自动执行,并且只会执行一次,具体调用顺序如图

package main

import "fmt"

func init() {
   
}

func main() {
   fmt.Println("Hello world")
}

 

图片

 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值