花都区pc端网站建设,画册设计多少钱一页,室内设计网站,wordpress菜单绑定模板本文为Go语言中指针定义和示例及不支持语法汇总。 目录
指针
定义指针
关键字new定义
函数返回指针
空指针
Go不支持语法汇总
总结 指针
Go语言也有指针#xff0c;结构体成员调用时#xff0c;obj.name
Go语言在使用指针时#xff0c;会使用内容的垃圾回收机制结构体成员调用时obj.name
Go语言在使用指针时会使用内容的垃圾回收机制gc: garbage collector,
开发人员不需要手动释放内存
Go语言可以返回栈上的指针程序会在编译的时候就确定了变量的分配位置
编译的时候如果发现有必要的话就将变量分配到堆上。 定义指针
定义一个变量然后把它的指针赋值给另一个变量。
示例如下
package mainimport fmtfunc main() {name : lisiptr : 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 fmtfunc main() {// 可以返回栈上的指针编译器在编译程序时会自动判断这段代码将city变量分配在堆上res : testPtr()fmt.Println(res city:, *res, , address:, res)
}// 定义一个函数返回一个string类型的指针go语言返回写在参数列表后面
func testPtr() *string {city : 河北ptr : cityreturn ptr
} 空指针
空指针在C语言nullgonil。
示例如下
// 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 fmtfunc 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语言中指针定义和示例及不支持语法汇总。