go基础学习笔记

黑神领主 · · 1467 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

呃,最近在学习go语言,因为我是从java转过来的,有好多不习惯

 

  1. go函数返回类型引用类型和值类型

 go函数的返回值可以为引用类型和值类型,引用类型就是直接返回内存地址值类型是变量的副本,所以大多数情况下是返回内存地址比较节省空间

package main

import (
	"fmt"
)

func getVar() string {
	var name = "wtsoftware"
	fmt.Println("函数内的变量内存地址:", &name)
	return name

}
func getVarAdd() *string {
	var name = "wtsoftware"
	fmt.Println("函数内nameAdr的变量内存地址:", &name)
	return &name

}
func main() {
	fmt.Println("Hello World!")
	name := getVar()
	nameAdr := getVarAdd()
	fmt.Println("函数外的变量内存地址:", &name)
	fmt.Println("函数外nameAdr的变量内存地址:", nameAdr)
	fmt.Println("metho 变量name:", name)
}

执行当前函数以后的返回值

Hello World!
函数内的变量内存地址: 0xc4200741e0
函数内nameAdr的变量内存地址: 0xc420074200
函数外的变量内存地址: 0xc4200741d0
函数外nameAdr的变量内存地址: 0xc420074200
metho 变量name: wtsoftware
成功: 进程退出代码 0.

可以看到 如果直接返回变量,则在函数内部直接返回了一个变量的副本,内存地址是不一样 的。而返回指针类型的nameAdr内存地址在函数内部和函数外部获取的地方都是一个内存地址


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:黑神领主

查看原文:go基础学习笔记

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1467 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传