首页 > 其他分享 >go打印fmt.Println指针的逃逸问题的注意,打印的顺序

go打印fmt.Println指针的逃逸问题的注意,打印的顺序

时间:2023-01-20 11:12:07浏览次数:48  
标签:err fmt 打印 gg range user Println model

问题1:

func main() {
model.DBNew("./conf.toml")
var user []model.CoreGrained
model.DB().Find(&user)
for _, i := range user {
var gg []string
err := json.Unmarshal(i.Group, &gg)
if err != nil {
log.Print(err)
}
fmt.Println(gg) //看这里的顺序
for _, v := range gg {
for _, vv := range strings.TrimSpace(v) {
if vv == 'B' { //不匹配
fmt.Println("true")
return

}
}

}

}

}
运行结果:

/mnt/c/Users/Administrator/AppData/Local/Temp/GoLand/___75go_build_TestPrt_go_linux
[ admin]
[c051d777-5c41-4e7d-9379-2054851803c4]

 

问题2

func main() {
model.DBNew("./conf.toml")
var user []model.CoreGrained
model.DB().Find(&user)
for _, i := range user {
var gg []string
err := json.Unmarshal(i.Group, &gg)
if err != nil {
log.Print(err)
}
fmt.Println(gg)
for _, v := range gg {
for _, vv := range strings.TrimSpace(v) {
if vv == 'a' { //关键是这里 ,匹配
fmt.Println("true")
return

}
}

}

}

}

/mnt/c/Users/Administrator/AppData/Local/Temp/GoLand/___291go_build_TestPrt_go_linux
[ admin]        //只打印一个admin,?执行顺序被颠倒
true

问题3

func main() {
model.DBNew("./conf.toml")
var user []model.CoreGrained
model.DB().Find(&user)
for _, i := range user {
var gg []string
err := json.Unmarshal(i.Group, &gg)
if err != nil {
log.Print(err)
}
fmt.Println(gg)
for _, v := range gg {
for _, vv := range strings.TrimSpace(v) {
if vv == 'c' { //匹配
fmt.Println("true")
return

}
}

}

}

}

/mnt/c/Users/Administrator/AppData/Local/Temp/GoLand/___111go_build_TestPrt_go_linux
[ admin]
[c051d777-5c41-4e7d-9379-2054851803c4]
true




 

标签:err,fmt,打印,gg,range,user,Println,model
From: https://www.cnblogs.com/cheyunhua/p/17062543.html

相关文章

  • c语言 打印数字金字塔
    提问: c语言。打印数字金字塔。for循环中为什么是j<i+1呢?以及如何判断这里的控制变量到底是与n有关还是与循环变量i有关呢?需要详细的解答 #include<stdio.h>voidpi......
  • C#调用CODESOFT标签打印
    1、创建标签模板2、在C#项目中引用CODESOFT插件在项目中引用软件对应插件,路径见下图"Lppx2.tlb"  添加成功后,在引用中会出现: ......
  • 程序员代码面试指南第二版 12.打印两个升序链表的公共部分
    ​​welcometomyblog​​程序员代码面试指南第二版12.打印两个升序链表的公共部分题目描述题目描述给定两个升序链表,打印两个升序链表的公共部分。输入描述:第一个链表......
  • 前端打印插件jqprint的使用
    1、下载地址https://webscripts.softpedia.com/script/Modules/jQuery-Plugins/jqPrint-68448.html2、使用jqprint必须在使用引用插件之前加上jquery-migrate-1.2.1.min.j......
  • 关于打印HTML表格时遇到的一些问题
    在实现使用jqprint打印表格时,遇到的一些问题1、当使用thread和tfoot元素时,当内容超过一页时,标头和表尾的的内容会出现在每一页。这是因为浏览器解析HTML默认定义的,所以最......
  • python按规则打印一组数字
    代码块forindex,ballinenumerate(balls):print(f'{ball:0>2d}',end='')ifindex==len(balls)-2:print('|',end='')enumerate()enumera......
  • golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。
      #定义示例类型和变量typeHumanstruct{Namestring}varpeople=Human{Name:"zhangsan"} 普通占位符占位符说明......
  • gtest测试用例打印台内容重定向
    需求描述在使用gtest做测试时,有时候需要记录测试过程中,测试对象运行时打印在控制台的相关内容,并根据打印的内容做校验,判断用例是否通过。由于测试用例很多,我们希望能够......
  • 使用动态输出打印内核的DEBUG信息
    简介printk()是很多嵌入式开发者喜欢用的调试手段之一,但是,使用printk()每次都要重新编译内核,很不方便。使用动态输出在不需要重新编译内核的情况下,方便的打印出内核的debu......
  • 定义一个长度为3的数组并打印改数组
    packagecom.fqs.demo;importjava.util.Arrays;publicclassChongZ{publicstaticvoidmain(String[]args){int[]array=newint[3];//......