Go语言基础学习七-指针与切片操作

Go语言基础学习七-指针与切片操作

    一.值,指针和引用类型

        与C和C++不同 Go语言中的数组是按值传递的,所以传递一个大数组的代价特别大,幸运的是,在Go语言中不常用数组,因为我们可以用切片代替(所以切片和数组到底有什么区别?)

        当一个变量传入函数时,会复制该变量的值到该函数作用域,所以本地变量在不使用时会自动被垃圾回收,很多情况下我们希望自己来管理变量的生命周期而非由它的作用域决定。所以通过使用指针,我们可以让参数的传递成本最低,且内容可修改,且变量的生命周期独立于作用域。

        指针的操作与C类似,&用作取址操作,*用于取值操作指针在这里的操作以及与++,--的优先级同C中的指针部分相似,所以这里我就不细讲了。

         Go语言的自动内存管理机制使得使用取址操作符&来取得函数参数或本地变量的地址非常安全,因为Go语言中只要一个指针引用一个变量那个变量就会在内存中保留。若在C及C++中这么操作非静态变量将会非常麻烦!(费解?有待考虑)

         在一些场景,我们需要传递非引用类型的可修改值,或需要高效的传入大类型的值,这时候需要使用到指针,Go语言提供了两种,创建变量的语法,同时获得指向它们的指针:

            1.使用内置的new()函数

            2.使用地址操作符。

          如: type composer struct{

                   name   string

                   birthYear int

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 下载安装Go语言的开发环境 Go语言的官方网站是golang.org,你可以在这里下载安装Go语言的开发环境。安装完毕后,可以在终端或命令行中输入go version来确认安装是否成功。 2. 学习Go语言基础语法 学习一门编程语言,首先要掌握的是它的基础语法。可以通过阅读官方文档、教程、书籍等方式来学习Go语言基础语法。建议先学习以下内容: - 变量和常量 - 数据类型 - 函数 - 控制结构(if/else、for、switch) - 数组和切片 - 结构体和指针 3. 编写第一个Go程序 在学习Go语言基础语法后,可以试着编写第一个Go程序。可以使用任何文本编辑器(如Notepad、Sublime Text、Visual Studio Code等)来编写代码。以下是一个简单的“Hello World”程序: ``` package main import "fmt" func main() { fmt.Println("Hello, world!") } ``` 将代码保存为hello.go,然后在终端或命令行中输入以下命令来运行程序: ``` go run hello.go ``` 如果一切顺利,终端或命令行中将会输出“Hello, world!”。 4. 继续深入学习Go语言学习Go语言基础语法和编写第一个程序后,可以继续深入学习Go语言的高级特性,比如: - 并发编程 - 接口和多态 - 包和模块化编程 - 错误处理 - JSON编码和解码 - 网络编程 可以阅读官方文档、书籍、博客等资源来学习这些高级特性。同时,建议多实践,写一些小项目或练习题来加深对Go语言的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值