首页 > 其他分享 >go指针逃逸对结构体元素集合法(增法)

go指针逃逸对结构体元素集合法(增法)

时间:2022-12-04 09:44:20浏览次数:35  
标签:Goods err 增法 filepaht 逃逸 MonTs func go os

package main

import (
"awesomeProject/logger"
"fmt"
"github.com/opencontainers/runtime-tools/filepath"
"os"
)

type Goods struct {
ID uint
MonTs string
}

func Mkfile() {
filepaht := filepath.Join(os.TempDir(), "nginx")

if _, err := os.Stat(filepaht); os.IsNotExist(err) {
err = os.MkdirAll(filepaht, 0644)
if err != nil {
logger.DefaultLogger.Errorf("%v", err)
}

}
}
func GetId(id uint) *Goods {
return &Goods{ID: id}

}
func (g *Goods) GetMontsAdd(m string) *Goods {
g.MonTs = m
return g

}

func main() {

g := GetId(100).GetMontsAdd("TE")

fmt.Println(g) //{100 TE}

}



package main

import (
"awesomeProject/logger"
"fmt"
"github.com/opencontainers/runtime-tools/filepath"
"os"
)

type Goods struct {
ID uint
MonTs string
}

func Mkfile() {
filepaht := filepath.Join(os.TempDir(), "nginx")

if _, err := os.Stat(filepaht); os.IsNotExist(err) {
err = os.MkdirAll(filepaht, 0644)
if err != nil {
logger.DefaultLogger.Errorf("%v", err)
}

}
}
func (g *Goods) GetId(id uint) *Goods {
g.ID = id
return g

}
func (g *Goods) GetMonts(m string) *Goods {
g.MonTs = m
fmt.Printf("%T\n", g)
return g

}

func main() {

var g Goods
g.GetId(100).GetMonts("test")
fmt.Println(g) //{100 test}

}



package main

import (
"awesomeProject/logger"
"fmt"
"github.com/opencontainers/runtime-tools/filepath"
"os"
)

type Goods struct {
ID uint
MonTs string
}

func Mkfile() {
filepaht := filepath.Join(os.TempDir(), "nginx")

if _, err := os.Stat(filepaht); os.IsNotExist(err) {
err = os.MkdirAll(filepaht, 0644)
if err != nil {
logger.DefaultLogger.Errorf("%v", err)
}

}
}
func (g *Goods) GetId(id uint) uint {
g.ID = id
return g.ID

}
func (g *Goods) GetMonts(m string) string {
g.MonTs = m

return g.MonTs

}

func main() {

var g *Goods (改为var g Goods)
   g.GetId(100)
g.GetMonts("test")
fmt.Println(g)

} 报错 runtime error: invalid memory address or nil pointer dereference

标签:Goods,err,增法,filepaht,逃逸,MonTs,func,go,os
From: https://www.cnblogs.com/cheyunhua/p/16949422.html

相关文章

  • Golang反射获得变量类型和值
    1.什么是反射反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。Golang反射包中有两对非常重要的函数和类型,两个函数分别是:reflect.TypeOf能获取类......
  • 使用google guava类库进行属性名称的驼峰、下划线以及连接符格式互转
    添加maven依赖<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.1-jre</version></dependency>测试用例publiccla......
  • Guava Google 核心 Java 类库使用总结
    jar包依赖<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>28.0-jre</version></dependency> Joiner&&Splitterp......
  • 基于CV1811C uboot显示logo
    1.根据原理图在dts中配置panel的reset、power等管脚,uboot和kernel吃的是同一份dts2.panel初始化参数在u-boot-2021.10/include/cvitek/cvi_panels/dsi_hx8394_evb.h......
  • PicGo下载,开发必备
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【2037】即可获取下载链接。......
  • 自定义allure报告logo
    为了在测试报告中凸显公司的标识,可以自定义修改allure报告中,左上角部分的图片和文字。左上角内容由两部分组成,图片(左)和文字(右),均可修改。  一、上传图片路径:allure文......
  • hud:Being a Good Boy in Spring Festival(nim博弈方法数计算)
    ProblemDescription一年在外父母时刻牵挂春节回家你能做几天好孩子吗寒假里尝试做做下面的事情吧陪妈妈逛一次菜场悄悄给爸爸买个小礼物主动地强烈地要求洗一次碗......
  • golang rang 字符串
    golang遍历字符串,有多种方式:``点击查看代码 //字符串,把字符串起来 s:="中国人,zgr" forpos,char:=ranges{ //range是按照字符来遍历,返回字符出现的位置......
  • 一文了解 Go 方法
    耐心和持久胜过激烈和狂热。哈喽大家好,我是陈明勇,今天分享的知识是Go方法。如果本文对你有帮助,不妨点个赞,如果你是Go语言初学者,不妨点个关注,一起成长一起进步,如果本文有......
  • GOM原版登陆器微端设置与纯微端设置的方式是什么?
    先说明一下:下面的问题只对本站的原版GOM引擎GOM登陆器有用,使用坡解版或者第三方登陆器包括绿盟登陆器及GOMPJ的登陆器还有现在新出的各种GOM引擎登陆器都是无效的,所以,在解决......