当前位置: 首页 > news >正文

Go语言指针及不支持语法汇总

本文为Go语言中指针定义和示例及不支持语法汇总。

目录

指针

定义指针

关键字new定义

函数返回指针

空指针

Go不支持语法汇总

总结


指针

Go语言也有指针,结构体成员调用时,obj.name

Go语言在使用指针时,会使用内容的垃圾回收机制(gc: garbage collector),

开发人员不需要手动释放内存

Go语言可以返回栈上的指针,程序会在编译的时候就确定了变量的分配位置;

编译的时候,如果发现有必要的话,就将变量分配到堆上。

定义指针

定义一个变量,然后把它的指针赋值给另一个变量。

示例如下:

package mainimport "fmt"func main() {name := "lisi"ptr := &namefmt.Println("name:", *ptr)fmt.Println("name ptr:", ptr)
}

运行结果:

name: lisiname ptr: 0xc000020070

关键字new定义

还可以使用关键字new来进行指针的定义。

示例如下:

name2Ptr := new(string)
*name2Ptr = "Miko"
fmt.Println("name2:", *name2Ptr)
fmt.Println("name2 ptr:", name2Ptr)

函数返回指针

定义一个函数,返回一个string类型的指针,go语言返回写在参数列表后面。

可以返回栈上的指针,编译器在编译程序时,

会自动判断这段代码,将city变量分配在堆上。

示例如下:

package mainimport "fmt"func main() {// 可以返回栈上的指针,编译器在编译程序时,会自动判断这段代码,将city变量分配在堆上res := testPtr()fmt.Println("res city:", *res, ", address:", res)
}// 定义一个函数,返回一个string类型的指针,go语言返回写在参数列表后面
func testPtr() *string {city := "河北"ptr := &cityreturn ptr
}

空指针

空指针,在C语言:null;go:nil。

示例如下:

// if 与php 不同在于if没有小括号,即使只有一行也必须{}
if res == nil {fmt.Println("name 是空, nil")
} else {fmt.Println("name 是非空")
}

Go不支持语法汇总

1.自增--i, ++i不支持

2.不支持地址加减

3.不支持三目运算符?:

4.只有false才能代码逻辑假,数字0和nil不能

示例如下:

package mainimport "fmt"func main() {//if 0 {// fmt.Println("不能使用0判断假")//}//if nil {// fmt.Println("不能使用nil判断假")//}if false {fmt.Println("这是假的情况")}if true {fmt.Println("这是真的情况")}// 不支持使用三目运算符//a, b := 1, 2//f := a > b ? 1:0
}

总结

本文为Go语言中指针定义和示例及不支持语法汇总。

http://www.lryc.cn/news/400925.html

相关文章:

  • Why can‘t I access GPT-4 models via API, although GPT-3.5 models work?
  • MATLAB中Simulink.SimulationData.Dataset用法
  • Spring Security学习笔记(一)Spring Security架构原理
  • nginx的access.log日志输出请求数
  • 前端网站(三)-- 记事本【附源码】
  • java——Junit单元测试
  • Scala学习笔记17: Try与异常处理
  • 内网信息收集——MSF信息收集浏览器记录配置文件敏感信息
  • C++ STL中的std::remove_if 的用法详解
  • 基于AT89C51单片机的16×16点阵LED显示器字符滚动显示设计(含文档、源码与proteus仿真,以及系统详细介绍)
  • Docker 日志丢失 - 解决方案
  • 物联网环境下机器人隐私保护法律框架研究-隐私保护法律监管平台
  • 设计模式-创建型模式之工厂方法模式
  • 婚礼成本与筹备策略:一场梦幻婚礼的理性规划
  • 前端a-tree遇到的问题
  • SpringCloud教程 | 第十篇: 读取Nacos的配置
  • 漏洞-Alibaba Nacos derby 远程代码执行漏洞
  • SpringBoot解决Apache Tomcat输入验证错误漏洞
  • echarts解决数据差异过大的问题
  • Oracle 常用系统
  • WPS点击Zotero插入没有任何反应
  • uniapp 实现上传文件的功能
  • apache Kylin系列介绍及配置
  • 【Qt 初识】QPushButton 的详解以及 Qt 中的坐标
  • 道路运输企业管理人员安全考核试题(附答案)
  • 免费开源的工业物联网(IoT)解决方案
  • Android 底部导航栏实现
  • ASP.NET Core----基础学习07----ViewStart ViewImports文件的使用
  • 铁威马教程丨如何收集NAS的日志
  • Taro自定义FromData实现本地路径转换为文件